Получение серого экрана для книг Excel, открытых / созданных макросом - PullRequest
0 голосов
/ 28 апреля 2020

У меня появляется серый экран, когда я вручную пытаюсь открыть книги Excel, созданные / открытые в макросе. Я использую обычные методы для open, save и close, но все еще не могу понять, почему это происходит. Ниже приведены фрагменты кода из моего макроса: Создать

 Set resultWorkbook = Workbooks.Add
 resultWorkbook.SaveAs FileName:=ThisWorkbook.result_folder & "\" & job_group_name & ".xlsx"
 resultWorkbook.Windows(1).Visible = False

После записи

resultWorkbook.Close SaveChanges:=True

Перед закрытием макроса

Private Sub Workbook_BeforeClose(Cancel As Boolean)
    Application.Visible = False
    Application.Quit
End Sub

1 Ответ

1 голос
/ 28 апреля 2020

Когда вы сохранили свои файлы с помощью resultWorkbook.Windows(1).Visible = False, вы скрыли окно. Окно будет скрыто при открытии файла. Вот почему вы получаете серый экран. Вы можете либо отобразить окно вручную, как описано здесь в разделе Скрыть или показать окно рабочей книги , либо добавить в Excel событие, которое вызывается при открытии файла и отображении его. Код для этого может выглядеть так:

Option Explicit
Dim WithEvents xlApp As Application

Private Sub Workbook_Open()
    Set xlApp = Application
End Sub

Private Sub xlApp_WorkbookOpen(ByVal Wb As Workbook)
    Wb.Windows(1).Visible = True
End Sub

Вы должны добавить это к ThisWorkbook другого файла с поддержкой макросов, который вы открываете при запуске Excel.

Или добавляете строку resultWorkbook.Windows(1).Visible = True перед сохранением и закрытием файла

resultWorkbook.Windows(1).Visible = True
resultWorkbook.Close SaveChanges:=True
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...