打开excel工作簿时出现灰屏由宏创建。

问题描述 投票:0回答:1

当我手动尝试打开在宏中创建的excel工作簿时,我得到了灰屏。我正在使用正常的方法进行 open, saveclose 但仍然无法弄清为什么会出现这种情况。以下是我的宏的代码片段。创建

 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
excel vba
1个回答
1
投票

由于你保存文件时使用了 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
© www.soinside.com 2019 - 2024. All rights reserved.