Команда замены макроса VBA - неправильное поведение - PullRequest
0 голосов
/ 27 апреля 2020

Существует некоторая проблема с этим кодом, который используется для изменения указанных c имен на указанном листе. Когда я запускал это на этапе тестирования, он работал нормально. Но когда я действительно захотел его использовать, он почему-то изменил имена на всех листах рабочей книги. Что не так с кодом?

Dim fndList As Variant
Dim rplcList As Variant
Dim x As Long

fndList = Array("Travel Total", "Utilities Total", "BFS_Total", "CPS_Total", "DMRT_Total", "Insurance Total")
rplcList = Array("Travel", "Utilities", "BFS", "CPS", "DMRT", "Insurance")

For x = LBound(fndList) To UBound(fndList)
        ThisWorkbook.Worksheets("Neg GC% Gap (val)").Cells.Replace What:=fndList(x), Replacement:=rplcList(x), LookAt:=xlWhole, SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False
Next x

1 Ответ

0 голосов
/ 27 апреля 2020

Как указано в комментарии к вашему вопросу, Excel сохраняет последние использованные параметры поиска и замены. Это трюк, который нужно выполнить перед заменой:

Set trick = ThisWorkbook.Worksheets("Neg GC% Gap (val)").Range("A1:A1").Find("trick", LookIn:=xlValues)

Вы можете запустить этот короткий код перед циклом просмотра списка.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...