Я использовал этот макрос, и он работал нормально, но мне нужно было немного больше.
Мне пришлось изменить LookAt:=xlWhole
на LookAt:=xlPart
и добавить форматирование цвета. Теперь, когда я выбираю столбец, макрос, кажется, проходит через столбец три раза до его завершения, поэтому он выполняет тройные замены.
Исходное поле: 7555, встроенное в текст. Справочная таблица состоит из двух столбцов, A имеет 7555, B имеет 77555. После завершения макроса многие из чисел теперь равны 777555, но некоторые верны. Странный!
Может кто-нибудь помочь с редактированием этого макроса, чтобы остановить его зацикливание?
Sub MultiReplace()
On Error GoTo errorcatch
Dim arrRules() As Variant
Set rngCol1 = Sheets(strSheet).Range(strRules)
Set rngCol2 = rngCol1.Offset(0, 1)
arrRules = Application.Union(rngCol1, rngCol2)
' Set the CellFormat object to replace with green.
With Application
.ReplaceFormat.Interior.ColorIndex = 35
End With
For i = 1 To UBound(arrRules)
Selection.Replace What:=arrRules(i, 1), Replacement:=arrRules(i, 2), _
LookAt:=xlPart, MatchCase:=True, ReplaceFormat:=True
Next i
errorcatch:
End Sub