当我手动尝试打开在宏中创建的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
在关闭Macro之前
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Application.Visible = False
Application.Quit
End Sub
由于你保存文件时使用了 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