Ошибка при закрытии открытой книги в VBA Userform
В подпрограмме я хочу открыть рабочую книгу, почитать и закрыть ее.
По какой-то причине я получаю ошибку:
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
Что меня действительно смущает, так это то, что эта ошибка не возникает с тем же кодом, когда кнопка «Command» не находится на пользовательской форме (на простой кнопке прямо на рабочем листе).
Я даже не знаю, что еще сообщать или где искать объяснение этого поведения (кроме StackOverflow!). Я пишу на VBA с использованием Excel для Mac 2011 и могу перейти на Windows Excel 2010, если это имеет значение.