在一个子例程中,我想打开一个工作簿,从中读取一些内容,然后关闭它。
出于某种原因,我收到一个错误:
Run-time error '1004':
Method 'Close' of object _Workbook failed
我已经确定了一个最小的代码片段来重现该问题。
创建一个新的excel文件。在其中创建一个用户表单。在此基础上,使用以下 Click 事件代码创建一个命令按钮:
Private Sub CommandButton1_Click()
Dim filename As String
Dim opened_workbook As Workbook
filename = Application.GetOpenFilename() ' User selects valid Excel file
Set opened_workbook = Application.Workbooks.Open(filename)
' File operations would occur here
opened_workbook.Close ' Exception thrown here
MsgBox "If you got here, it worked!"
Unload Me
End Sub
真正让我感到困惑的是,当命令按钮不在用户窗体上(直接在工作表上的普通按钮上)时,相同的代码不会发生此错误。
我什至不知道还要报告什么或在哪里解释这种行为(除了 StackOverflow!)。我正在使用 Excel for Mac 2011 编写 VBA,如果有所不同,我可以迁移到 Windows Excel 2010。