问题
I would like to replace the values in column A:A using arrays:
Dim aValueNew() As String
Dim aValueOld() As String
aValueNew = Split("ABC,DEF,GHI", ",")
aValueOld = Split("123,456,789", ",")
123 needs to be replaced by ABC, 456 by DEF and so forth.
What is the most efficient way of doing this? I am struggling on how to include the Replace function in a loop and your help would be appreciated. Something like:
For i = 0 to i = 2
Range("A:A").Replace What:= aValueOld(i), Replacement:=aValueNew(i), LookAt:=xlWhole, SearchOrder:=xlByRows, MatchCase:=False
回答1:
You almost had it. You may find the documentation for For...Next helpful.
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
回答2:
Try this code:
For i = 0 to UBound(aValueOld)
Columns("A:A").Select
Selection.Replace What:= aValueOld(i), Replacement:=aValueNew(i), LookAt:=xlWhole, SearchOrder:=xlByRows, MatchCase:=False
Note:
Your For
statement was wrong
If count of values are the bound of array use UBound(<Array Name>)
来源:https://stackoverflow.com/questions/29139230/excel-vba-replace-text-with-two-arrays