Ошибка при закрытии открытой книги в пользовательской форме VBA

В подпрограмме я хочу открыть книгу, прочитать из нее что-то, и закройте его.
По какой-то причине я получаю сообщение об ошибке:

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, если это имеет значение.

6
задан Prashant Kumar 16 May 2012 в 05:23
поделиться