Excel VBA - аномалия при обновлении экрана при открытии нескольких книг - PullRequest
0 голосов
/ 27 сентября 2018

Введение:
У меня есть основная рабочая книга (A) и две другие рабочие книги (B & C).Основная рабочая книга имеет пользовательскую форму, из которой я делаю следующую последовательность:
Открыть B -> запустить макрос, который вызывает несколько других макросов в B -> сохранить и закрыть B -> Открыть C -> запустить макрос, который вызывает несколько других макросов в C -> сохранить и закрыть C

Проблема:
Моя проблема в том, что Application.ScreenUpdating = False не работает должным образом.Я не возражаю против мерцания экрана, но раздражает то, что запуск кода занимает значительно больше времени, чем при правильной работе.

Код: (комментарии поясняются в следующем разделе)

Sub test()
Application.ScreenUpdating = False

Workbooks.Open ("H:\WorkbookA.xlsm")
'**** tried here ****
Application.Run ("'WorkbookA.xlsm'!TestA")
wbName = "H:\WorkbookA Test.xlsm"
ActiveWorkbook.SaveAs Filename:=wbName
ActiveWorkbook.Close

'**** split ****

Workbooks.Open ("H:\WorkbookB.xlsm")
'**** tried here ****
Application.Run ("'WorkbookB.xlsm'!TestB")
wbName = "H:\WorkbookB Test.xlsm"
ActiveWorkbook.SaveAs Filename:=wbName
ActiveWorkbook.Close

Application.ScreenUpdating = True
End Sub

Я пытался:
Я пытался вставить Application.ScreenUpdating = False непосредственно перед обеими Application.Run строками, как показано в коде (**** пробовал************************************************************************************************************************************************************************************************************************************************* [*******************/* Наконец:
Я попытался разбить последовательность и запустить их отдельно, как показано в коде (**** split ****).Это прекрасно работает, что очень странно.

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

Любые идеи или предложения приветствуются:)

...