Я использовал этот макрос, и он работал нормально, но мне нужно было немного больше.

Мне пришлось изменить 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

0