Excel工作表或整个工作簿中,批量替换“文本框”中的指定内容!

Excel情报局
Excel职场联盟
生产挖掘分享Excel基础技能
Excel爱好者大本营
用1%的Excel基础搞定99%的职场问题
做一个超级实用的Excel公众号
Excel是门手艺玩转需要勇气
数万Excel爱好者聚集地
SUPER EXCEL MAN

前言|职场实例

今天我们来继续讲解一个实用的Excel纯技巧干货:
在Excel单个工作表或Excel整个工作簿中,如何批量替换“文本框”中的指定内容!
我们来观察下面一个具体的例子:
在“Excel情报局”这个工作表中,表格中左侧含有2个插入的文本框内容,分别为:
文本框①:“Excel情报局”
文本框②:“Excel职场联盟”
现在我们想要将所有文本框中的内容“Excel”批量替换为“Word”显示,形成右侧文本框的所示的内容。
有的小伙伴又说了,Excel的“查找和替换”功能可以实现吗?
我们用“查找和替换”实验了一下,我们查找“Excel”这个字段内容,发现根本无法查找到相关信息。
注意:
Excel中的查找和替换,查找的对象是单元格,也就是说只能查找单元格中所显示的内容,像“文本框”、“批注”中的内容是无法使用查找和替换功能的。

01|只替换单个工作表中文本框内容

假如我们在工作中遇到这种文本框内容查找和替换的问题,还必须通过VBA代码的方法来解决,简单又高效。PS:代码为固定模板,不需要我们自己编写,复制粘贴即用。
如果说我们只查找替换单个工作表(如工作表名称:Excel情报局)中文本框的内容,即将工作表中所有文本框中内容“Excel”替换为“Word”,则按如下方法:
右击工作表名称标签,点击“查看代码”,进入VBA编辑器窗口(或按快捷键Alt+F11进入)。将下面的一段代码复制到窗口中,点击上方的【运行】-【运行子过程/用户窗体】;
在弹出的【Find】对话框中输入需要查找的内容:Excel,点击确定;
在弹出的【Replace】对话框中输入要替换为的内容:Word,点击确定,最后即可成功替换。
代码如下:
Sub TextBoxReplace()Dim xWs As WorksheetDim shp As ShapeDim xFindStr As StringDim xReplace As StringxFindStr = Application.InputBox("Find:", xTitleId, "", Type:=2)xReplace = Application.InputBox("Replace:", xTitleId, "", Type:=2)Set xWs = Application.ActiveSheetOn Error Resume NextFor Each shp In xWs.Shapes xValue = shp.TextFrame.Characters.Text shp.TextFrame.Characters.Text = VBA.Replace(xValue, xFindStr, xReplace, 1)NextEnd Sub

如下图所示:

02|替换整个工作簿的文本框内容

如果我们的文本框存在于多个工作表中,我们想要将整个工作簿中所有工作表中文本框内容“Excel”替换为“Word”,如果还用上面的代码,就会失效。

上面的那段代码是:

想要替换哪个工作表中文本框必须右击对应工作表的名称标签,点击“查看代码”,即有局限性。

如果有1000个工作表的话,当然,如果你不嫌麻烦,可以一个一个工作表进行复制代码操作。

我们以2个工作表(工作表1:Excel情报局;工作表2:Excel职场联盟)为例,来简单的进行说明。如下图所示:

我们右击任意一个工作表名称标签,点击“查看代码”,进入VBA编辑器界面(或按快捷键Alt+F11进入)。

然后将下面一段VBA代码复制粘贴到VBA编辑器录入界面中,最后点击上方的【运行】-【运行子过程/用户窗体】后,关闭VBA编辑器窗口。

Sub 批量替换文本框7()Dim oWK As WorksheetFor Each oWK In WorksheetsWith oWKsOldText = "Excel"sNewText = "Word"For Each oSP In .ShapesWith oSPIf oSP.Type = msoTextBox ThensText = .TextFrame2.TextRange.Text.TextFrame2.TextRange.Text = VBA.Replace(sText, sOldText, sNewText)End IfEnd WithNextEnd WithNext oWKMsgBox "操作完成"End Sub

最后我们发现:

所有工作簿中文本框内容中的“Excel”批量替换为了“Word”

如下如所示:

此段代码需要我们根据实际情况灵活修改:

①sOldText = "Excel"

此句代码中的“Excel”:是要查找替换的旧文本

②sNewText = "Word"

此句代码中的“Word”:是要替换修改为的新文本

阅读完文章之后,希望小伙伴们在文章底部帮助小编[点赞]+点亮[在看];如果觉得内容有价值欢迎[分享]给你的同事朋友;小编也和大家一样,正在不断的学习与积累中,坚持持续分享的道路上很艰辛,需要有你们的鼓励与支持!别逃避问题,否则它只会越积越多;每天进步一点点,你就胜过了大多数人。
(0)

相关推荐