Error al cerrar un libro abierto en forma de usuario VBA
En una subrutina, quiero abrir un libro, leerlo y cerrarlo.
Por alguna razón, me sale un error:
Run-time error '1004':
Method 'Close' of object _Workbook failed
He identificado un fragmento de código mínimo para reproducir el problema.
Crear un nuevo archivo de Excel. En ella, crea un formulario de usuario. En eso, crea un botón de comando con el siguiente código de evento 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
Lo que realmente me deja perplejo es que este error no ocurre con el mismo código cuando el botón Comando no está en un formulario de usuario (en un botón plano directamente en la hoja de cálculo).
Ni siquiera sé qué más informar o dónde buscar para explicar este comportamiento (¡además de StackOverflow!). Estoy escribiendo VBA usando Excel para Mac 2011 y puedo cambiarme a Windows Excel 2010 si eso marca una diferencia.