有两个工作簿,一个工作簿中存放着要查找并替换成的文本,如下图1所示,列A中是要查找的文本,将列A中查找到的文本替换成列B中相应的文本,例如,将找到的“Excel”替换成“Excel” 。
文章插图
图1
另一个工作簿中是我们要替换其文本的工作簿,我们要在该工作簿所有工作表中查找上图1列A中的值并将找到的文本替成列B中的文本,如图2所示 。
文章插图
图2
【excel工作簿所有工作表中的多值替换】要实现的结果如下图3所示 。
文章插图
图3
使用下面的VBA代码来完成上述任务 。在图1所示的工作簿中,打开VBE,插入一个标准模块,输入代码:
‘查找并替换指定工作簿中的多个文本
Sub MultiFindReplace()
Dim ReplaceListWB As Workbook
Dim ReplaceInWB As Workbook
Dim wks As Worksheet
Dim ReplaceIn As String
Dim ReplaceList As Range
Dim i As Long
‘获取要进行替换文本操作的工作簿
ReplaceIn =Application.GetOpenFilename( _
“要替换文本的工作簿, *.xls?”, 1, _
“选择要替换文本的工作簿”)
‘如果单击取消,则退出程序
If ReplaceIn =”False” Then Exit Sub
Application.ScreenUpdating = False
‘要替换文本的工作簿
Set ReplaceInWB = Workbooks.Open(ReplaceIn)
‘替换文本所在的工作簿
Set ReplaceListWB = ThisWorkbook
‘替换文本所在的区域
Set ReplaceList = ReplaceListWB.Worksheets(1). _
Cells(1,1).CurrentRegion
‘遍历要替换文本的工作簿中所有工作表
For Each wks In ReplaceInWB.Worksheets
‘使用替换文本来替换工作表中的数据
With ReplaceList
For i = 2 To .Rows.Count
Call wks.UsedRange.Replace( _
.Cells(i,1).Value, _
.Cells(i,2).Value, _
xlPart, ,False)
Next i
End With
Next
‘保存并关闭要替换文本的工作簿
ReplaceInWB.Save
ReplaceInWB.Close
Application.ScreenUpdating = False
End Sub
运行代码,弹出下图4所示的对话框,要求选择要替换文本的工作簿文件 。选择工作簿文件后,将根据上图1工作表中的文本自动对该工作簿中的文本进行查找和替换操作 。
文章插图
图4
推荐阅读
- 阻止Excel将某些文本自动转换为超链接
- excel图表怎么查找指定数据
- 怎么更早地体验到Excel的最新功能?
- excel数据透视表怎么创建导航工作表
- excel图表技巧:显示数据有效性列表
- 怎么不打开Excel文件删除行?
- excel图表怎么创建动态的目标线
- excel单元格及其所在的行和列分别高亮显示
- 怎么将excel指定文件夹中的文件移至目标文件夹?
- 怎么获取Excel图表系列中指定数据点的类别名?