View difference between Paste ID: Ahw7x4yv and Zau3RHn2
SHOW: | | - or go back to the newest paste.
1
Sub SafeReplace(TargetRange As Range, ReplaceRules As Range)
2
    ' безопасный массовый поиск и замена
3
    ' TargetRange: где ищем, ReplaceRules: правила замены, первый столбец - что найти, второй - на что заменить
4
        For i = 1 To ReplaceRules.Rows.Count ' for each
5
            TargetRange.Replace _
6
                What:=ReplaceRules.Cells(i, 1), Replacement:="!SafeReplace" + CStr(i) + "!", _
7
                MatchCase:=False
8
        Next ' замена 1 проход
9
        
10
        For i = 1 To ReplaceRules.Rows.Count ' for each
11
            TargetRange.Replace _
12-
                What:="!SafeReplace" + CStr(i) + "!", Replacement:=ReplaceRules.Cells(i, 1), _
12+
                What:="!SafeReplace" + CStr(i) + "!", Replacement:=ReplaceRules.Cells(i, 2), _
13
                MatchCase:=True
14
        Next ' замена 2 проход
15
End Sub