在excel 2007中查找并替换列中的多个单词

在excel 2007中查找并替换列中的多个单词,excel,vba,Excel,Vba,我使用上述代码查找A列Sheet1中的多个单词,并将其替换为B列Sheet2中的单词,如下表所示: 但是,当我在另一张表中应用此项,如下文所述,用于另一个数据时,代码失败,即,我在表1中得到扭曲的单词: 请帮助我,以便我可以将A列Sheet1中的单词替换为B列Sheet2中的单词 注:以上链接已经给出了谷歌电子表格,但我在Excel 2007表格中有问题。 我请求您通过提供完整的修订代码来帮助我,因为我不擅长VBA在Excel中,我发现了一些问题。 首先,要始终引用带有前缀的单元格: Sub x

我使用上述代码查找A列Sheet1中的多个单词,并将其替换为B列Sheet2中的单词,如下表所示:

但是,当我在另一张表中应用此项,如下文所述,用于另一个数据时,代码失败,即,我在表1中得到扭曲的单词:

请帮助我,以便我可以将A列Sheet1中的单词替换为B列Sheet2中的单词 注:以上链接已经给出了谷歌电子表格,但我在Excel 2007表格中有问题。
我请求您通过提供完整的修订代码来帮助我,因为我不擅长VBA

在Excel中,我发现了一些问题。 首先,要始终引用带有前缀的单元格:

Sub xLator2()
Dim s1 As Worksheet, s2 As Worksheet
Dim N As Long, i As Long
Dim from(), too()
Set s1 = Sheets("Sheet1") '   contains the data
Set s2 = Sheets("Sheet2") '   contains the translation table

s2.Activate

N = Cells(Rows.Count, 1).End(xlUp).Row
ReDim from(1 To N)
ReDim too(1 To N)
For i = 1 To N
    from(i) = Cells(i, 1).Value
    too(i) = Cells(i, 2).Value
Next i

s1.Activate

For i = LBound(from) To UBound(from)
    Cells.Replace What:=from(i), Replacement:=too(i)
Next i
End Sub
第二。出现奇怪的单词是因为查找/替换单词的替换部分。如果您不想使用:

ActiveSheet.Cells ...
第三,。查找/更换所有表1上的工作。如果只需要A列,请执行以下操作:

ActiveSheet.Cells.Replace What:=from(i), Replacement:=too(i), LookAt:=xlWhole
ActiveSheet.Range("A:A").Select
For i = LBound(from) To UBound(from)
    Selection.Replace What:=from(i), Replacement:=too(i), LookAt:=xlWhole
Next i