excel 中查找替换,根据第一列的内容,用第二列的替换

来源:百度知道 编辑:UC知道 时间:2024/05/30 05:15:44
由于处理的表格中有很多相同的关键词需要替换,例如原单元格中的内容为 “苹果香蕉桔子”,我要替换中间的“苹果”于是作了一个宏,这个宏我方在个人宏工作簿中:
Cells.Replace What:="苹果", Replacement:="Apple", LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=False,SearchFormat:=False, ReplaceFormat:=False
这样的关键词很多,而且不断增加,因此每个词都要写一句。
现在我把关键词放在第一列中,要替换的词放在第二列中。如果把第一列的词作为关键词查找替换成第二列中的词?
现在发现一个问题,就是如果把关键词放在个人宏工作簿中的第一、二列中,做宏。而我要编辑的表是另外的一个文件,这样
For i = 1 To Range("a65536").End(xlUp).Row
Range("b:iv").Replace What:=Range("a" & i), Replacement:=Range("b" & i), LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False
Next
这个宏不会从个人宏工作簿的1、2列选取关键词,而是在带编辑的文件中找,不能达到效果。
我现在的办法暂时做了一个按钮,自动生成一个写好的宏,复制在剪切搬上。然后再创建宏,把复制的宏贴进去。这样每次增加词条又要多好多操作。
有没有一个用active控件自动生成宏的办法?

代码这样改:

For i = 1 To Range("a65536").End(xlUp).Row
Range("b:iv").Replace What:=Range("a" & i), Replacement:=Range("b" & i), LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False
Next

用offset应该可以搞定