Excel VBA Find&替换实例

时间:2014-11-04 12:59:35

标签: excel vba excel-vba

我使用以下代码来查找和替换excel中文本字符串中的某些单词。我遇到的问题是代码重新替换已经被替换的单词。例如,如果我有一个文本字符串

  “这个男孩骑着他的自行车沿着车道行驶,然后骑回他的车道”

在我的列表中我有

 A      B    
cycle  bike     
bike   cycle    

我想将“自行车”一词改为“循环”,然后将句子中的另一个词“循环”改为“自行车”。

所以我想从这个

获得
  “这个男孩骑着他的自行车沿着车道行驶,然后骑回他的车道”

到这个

  

“这个男孩沿着车道骑行,然后骑回自行车”

当我运行代码时,它会将两个单词转换为自行车,这是合乎逻辑的,因为它会找到“先循环并将其更改为自行车”,然后因为它将其更改为自行车,然后它将替换两个实例以循环制作“那个男孩骑着他的自行车沿着车道行驶,然后骑回他的车道“

所以基本上一旦单词被替换,我不希望代码再次替换它?

Sub MultiFindNReplace()    
    Dim Rng As Range    
    Dim InputRng As Range, ReplaceRng As Range    
    xTitleId = "KutoolsforExcel"    
    Set InputRng = Application.Selection        
    Set InputRng = Application.InputBox("Original Range ", xTitleId, InputRng.Address, Type:=8)    
    Set ReplaceRng = Application.InputBox("Replace Range :", xTitleId, Type:=8)    
Application.ScreenUpdating = False    
    For Each Rng In ReplaceRng.Columns(1).Cells    
        InputRng.Replace what:=Rng.Value, replacement:=Rng.Offset(0, 1).Value    
    Next    
Application.ScreenUpdating = True    
End Sub  

非常感谢

0 个答案:

没有答案