在子程序中,我想要打开一个工作簿,从中读取一些内容,然后关闭它。
由于某种原因,我遇到了一个错误:
由于某种原因,我遇到了一个错误:
Run-time error '1004':
Method 'Close' of object _Workbook failed
我已经找到了最简代码片段来复现问题。
创建一个全新的Excel文件,在其中创建一个用户窗体。在该窗体上,创建一个命令按钮,并添加以下单击事件代码:
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。