Я пытаюсь скрыть Excel во время длинного сценария, в котором я делаю некоторые веб-соскабливания. Я могу скрыть приложение просто отлично, проблема в том, что, когда я изменяю .Visible
обратно в True
, я получаю еще 1-2 дополнительных приложения (просто пустые оболочки Excel). Я предполагаю, что одна из них - это моя книга PERSONAL.xlsb
, но я не уверен, что другой - иногда я получаю один дополнительный, иногда я получаю два. Единственный способ закрыть эти файлы оболочки - EXCEL.EXE
процесс EXCEL.EXE
помощью диспетчера задач.
Я пробовал скрывать только главное окно (Windows(1)
), но безрезультатно (он просто скрывает книгу, а не приложение):
Sub Test()
Windows(ThisWorkbook.Name).Visible = False
Application.Wait (Now + TimeValue("0:00:05"))
Windows(ThisWorkbook.Name).Visible = True
End Sub
Как я могу снова открыть свою основную книгу?
Образец кода:
Sub Test()
Application.Visible = False
Application.Wait (Now + TimeValue("0:00:05"))
Application.Visible = True
End Sub
Изменение: это в Windows 7, Excel 2016
Edit2: запуск только Application.Visible = True
сам по себе также дает мне эти два фантомных приложения.
Edit3: проблема, безусловно, связана с тем, что макросы хранятся в файле PERSONAL.xlsb
- когда я перехожу на новый компьютер и добавляю новый макрос в эту книгу, я могу воспроизвести проблему. Тем не менее, я все еще не уверен, как этого избежать...
Диспетчер задач:
Скрипт, который открывает Excel из Filemaker Pro:
Open URL [With dialog:Off; "C:\Users\Username\Desktop\TestFile.xlsm"]
Внутри TestFile.xlsm
:
Private Sub Workbook_Open()
Application.Visible = False
'Refresh a query in the Excel workbook that is linked to Filemaker Pro
'Webscrape, webscrape, webscrape from a worksheet inside this Excel document
'to a hidden Internet Explorer Window (ewww, IE!)
Application.Wait (Now + TimeValue("0:00:05"))
Application.Visible = True
'Either close Excel completely or reload my main instance of Excel
End Sub
Я понял, что могу полностью закрыть Excel с помощью Excel.Application.Quit, но я не решил, хочу ли я сразу же выйти или перерисовать UserForm в Excel, который суммирует процесс импорта