Excel情报局
职场联盟Excel
生产挖掘分享Excel基础技能
Excel爱好者大本营
用1%的Excel基础搞定99%的职场问题
做一个超级实用的Excel公众号
Excel是门手艺玩转需要勇气
数万Excel爱好者聚集地
SUPER EXCEL MAN
1
职场实例
今天小编遇到了这样的一个问题:
Excel如何一次性批量实现对多个内容的“查找并替换”?
实际工作场景中,需要一次性批量实现对100多个内容的“查找并替换”。
我们用几组简单的数据来模拟实际场景,讲解一下这个问题。
如下图所示:
B列为我们想要查找替换的数据源,我们想要按照G:H列的查找替换要求,查找B列的内容:
将“Excel”替换为“E”
将“Word”替换为“W”
将“PPT”替换为“P”
最后替换完成的数据如D列所示。
我们最通常的做法就是通过快捷键“Ctrl+H”调出“查找和替换”的对话框,通过3次查找和替换,完成这样的任务。
第一次查找和替换:
查找“Excel”替换为“E”
第二次查找和替换:
查找“Word”替换为“W”
第三次查找和替换:
查找“PPT”替换为“P”
如果我们按照上面这样的操作方法,遇到需要一次性批量实现对100多个内容的“查找并替换”的话,那效率就太低了。
2
问题解答
解决这样的问题,还是用VBA代码快速的实现吧。
01.
准备对应表
首先我们需要在G:H列准备好查找内容和替换为内容的对应表。如下图所示:
02.
进入VBA代码编辑器
鼠标右击工作表名称标签,点击【查看代码】命令(或按快捷键Alt+F11键)进入VBA代码编辑器的窗口。
03.
复制并粘贴代码
复制下面的那段VBA代码并粘贴至VBA代码编辑器窗口内。
04.
运行代码
点击代码器窗口上方的【运行-运行子过程/用户窗体】命令。
代码如下:
Sub 公众号Excel情报局()Dim arr, brr, j&, i&arr = Range("G2:H4"): brr = Range("B2:B7")For j = 1 To UBound(brr)For i = 1 To UBound(arr)brr(j, 1) = Replace(brr(j, 1), arr(i, 1), arr(i, 2))Next iNext jRange("B2:B7").Value = brrEnd Sub
具体操作步骤,如下动图所示:
3
代码释义
01.
查找和替换为对应表的区域
代码:
arr = Range("G2:H4"): brr = Range("B2:B7")
其中G2:H4代表查找和替换为对应表的区域。
02.
查找的区域
代码:
arr = Range("G2:H4"): brr = Range("B2:B7")
其中B2:B7代表查找的区域。
03.
查找替换后放置数据的区域
代码:
Range("B2:B7").Value = brr
其中B2:B7代表查找替换后放置数据的区域。
本例中在查找的数据源B列上直接进行查找替换,所以查找替换后放置数据的区域B2:B7,与查找的区域B2:B7重合。