В подпрограмме я хочу открыть книгу, прочитать из нее что-то, и закройте его.
По какой-то причине я получаю сообщение об ошибке:
Run-time error '1004':
Method 'Close' of object _Workbook failed
Я определил минимальный фрагмент кода для воспроизведения проблемы.
Создайте новый файл Excel. В нем создайте пользовательскую форму. Для этого создайте кнопку Command со следующим кодом события 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
Что меня действительно озадачивает, так это то, что эта ошибка не возникает с тем же кодом, когда кнопка Command не находится на пользовательской форме (на простой кнопке прямо на странице). рабочий лист).
Я даже не знаю, о чем еще сообщить или где искать объяснение такого поведения (помимо StackOverflow!). Я пишу VBA, используя Excel для Mac 2011, и могу перейти на Windows Excel 2010, если это имеет значение.