Найти и заменить имя файла в формуле и пересчитать формулу - PullRequest
0 голосов
/ 19 марта 2019

Это может быть простой вопрос для вас, но мне нужен этот код, потому что в противном случае мне придется делать много повторяющихся работ.

Я ищу код VBA, который выполняет следующие действия:

  • Находит и заменяет указанную строку (ссылка на источник - скажем, «file1» на «file2»), а затемполучить новые значения из измененного файла Excel.

Например:

=VLOOKUP(A3;file1!A1;7;FALSE)

и заменяет его на

=VLOOKUP(A3;file2!A1;7;FALSE)

Я пробовал это, но он просит меня как 100x подтвердить / найти файл накаждое изменение

name = InputBox("your file name")

Cells.Replace What:="file1", Replacement:=name, LookAt:=xlPart _
    , SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
    ReplaceFormat:=False

Пример, чтобы прояснить ситуацию:

Я загружаю файл Excel из другой программы, и номера меняются каждую неделю.У меня также есть свой собственный Excel, где есть функция vlookup, чтобы найти конкретные цифры из загруженного Excel.

Теперь я пытаюсь заставить Excel скопировать новые номера из другого файла, просто изменив ссылку на другой Excel.Допустим, у меня есть три файла Excel: MyTemplate, Week1_figures и Week2_figures.Я хотел бы найти все Week1_figures в MyTemplate и заменить их на Week2_figures И тогда цифры изменится.

=VLOOKUP(A3;Week1_figures!A1;7;FALSE)  

->

=VLOOKUP(A3;Week2_figures!A1;7;FALSE)

Я пробовал приведенный выше код, но он всегда заставляет меня искать этот конкретный файл.(Week2_figures в данном случае)

Можете ли вы, ребята, помочь мне?Есть ли другой способ сделать это?

Если что-то здесь неясно, я постараюсь помочь разобраться.Извините за мой плохой английский.

1 Ответ

5 голосов
/ 19 марта 2019

Я пытался это сделать, но он просит меня, как 100x, подтвердить / найти файл при каждом изменении.

Вы можете временно отключить подтверждения с помощью Application.DisplayAlerts = False.

name = InputBox("your file name")

Application.DisplayAlerts = False

Cells.Replace What:="file1", Replacement:=name, LookAt:=xlPart _
    , SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
    ReplaceFormat:=False

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