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>)
我想用数组替换第 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>)