Excel情报局
职场联盟Excel
生产挖掘分享Excel基础技能
Excel爱好者大本营
用1%的Excel基础搞定99%的职场问题
做一个超级实用的Excel公众号
Excel是门手艺玩转需要勇气
数万Excel爱好者聚集地
SUPER EXCEL MAN
1
职场实例
今天我们来继续讲解一个实用的Excel纯技巧干货:
在Excel单个工作表或Excel整个工作簿中,如何批量替换“文本框”中的指定内容!
我们来观察下面一个具体的例子:
在“Excel情报局”这个工作表中,表格中左侧含有2个插入的文本框内容,分别为:
文本框①:“Excel情报局”
文本框②:“Excel职场联盟”
现在我们想要将所有文本框中的内容“Excel”批量替换为“Word”显示,形成右侧文本框的所示的内容。
有的小伙伴又说了,Excel的“查找和替换”功能可以实现吗?
我们用“查找和替换”实验了一下,我们查找“Excel”这个字段内容,发现根本无法查找到相关信息。
注意:
Excel中的查找和替换,查找的对象是单元格,也就是说只能查找单元格中所显示的内容,像“文本框”、“批注”中的内容是无法使用查找和替换功能的。
2
工作表内查找替换
假如我们在工作中遇到这种文本框内容查找和替换的问题,还必须通过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
如下图所示:
3
工作簿内查找替换
如果我们的文本框存在于多个工作表中,我们想要将整个工作簿中所有工作表中文本框内容“Excel”替换为“Word”,如果还用上面的代码,就会失效。
上面的那段代码是:
想要替换哪个工作表中文本框必须右击对应工作表的名称标签,点击“查看代码”,即有局限性。
如果有1000个工作表的话,当然,如果你不嫌麻烦,可以一个一个工作表进行复制代码操作。
我们以2个工作表(工作表1:Excel情报局;工作表2:Excel职场联盟)为例,来简单的进行说明。如下图所示:
我们右击任意一个工作表名称标签,点击“查看代码”,进入VBA编辑器界面(或按快捷键Alt+F11进入)。
然后将下面一段VBA代码复制粘贴到VBA编辑器录入界面中,最后点击上方的【运行】-【运行子过程/用户窗体】后,关闭VBA编辑器窗口。
Sub 批量替换文本框7()Dim oWK As WorksheetFor Each oWK In WorksheetsWithsOldText = "Excel"sNewText = "Word"For Each oSP InWithIf oSP.Type = msoTextBox ThensText = .TextFrame2.TextRange.Text.TextFrame2.TextRange.Text = VBA.Replace(sText, sOldText, sNewText)End IfEnd WithNextEnd WithNextMsgBox "操作完成"End
最后我们发现:
所有工作簿中文本框内容中的“Excel”批量替换为了“Word”
如下如所示:
此段代码需要我们根据实际情况灵活修改:
①sOldText = "Excel"
此句代码中的“Excel”:是要查找替换的旧文本
②sNewText = "Word"
此句代码中的“Word”:是要替换修改为的新文本
回顾关键内容,善用图片表达,学会建立联系,拓展深度广度,浓缩关键概念,应用到行动中,善于归纳总结,尝试进行分享。