Excel VBA 用两个数组替换文本

Excel VBA Replace Text with Two Arrays

我想用数组替换第 A:A 列中的值:

Dim aValueNew() As String
Dim aValueOld() As String

aValueNew = Split("ABC,DEF,GHI", ",")
aValueOld = Split("123,456,789", ",")

123需要换成ABC,456换成DEF等等。

最有效的方法是什么?我正在努力研究如何在循环中包含 Replace 函数,将不胜感激。类似于:

For i = 0 to i = 2
Range("A:A").Replace What:= aValueOld(i), Replacement:=aValueNew(i), LookAt:=xlWhole, SearchOrder:=xlByRows, MatchCase:=False

你几乎成功了。您可能会发现 documentation for For...Next 有帮助。

Dim i As Long
For i = 0 To 2
    Range("A:A").Replace What:=aValueOld(i), Replacement:=aValueNew(i), _
        LookAt:=xlWhole, SearchOrder:=xlByRows, MatchCase:=False
Next

试试这个代码:

For i = 0 to UBound(aValueOld)
    Columns("A:A").Select
    Selection.Replace What:= aValueOld(i), Replacement:=aValueNew(i), LookAt:=xlWhole, SearchOrder:=xlByRows, MatchCase:=False

注:
您的 For 陈述是错误的
如果值的计数是数组的边界,请使用 UBound(<Array Name>)