Libro de trabajo de apertura / cierre de VBA

En este tutorial, aprenderá a usar VBA para abrir y cerrar el libro de Excel de varias maneras.

VBA le permite abrir o cerrar archivos utilizando los métodos estándar .Abierto y .Cerrar.

Si desea aprender a verificar si existe un archivo antes de intentar abrirlo, puede hacer clic en este enlace: VBA File Exists

Abra un libro de trabajo en VBA

Abrir libro de trabajo desde la ruta

Si sabe qué archivo desea abrir, puede especificar su nombre de ruta completo en la función. Aquí está el código:

1 Libros de trabajo. Abra "C: \ Carpeta VBA \ Archivo de muestra 1.xlsx"

Esta línea del código abre el archivo "Archivo de muestra 1" de la "Carpeta VBA".

Abrir libro de trabajo - ActiveWorkbook

Cuando abre un libro, automáticamente se convierte en ActiveWorkbook. Puede hacer referencia al libro de trabajo recién abierto así:

1 ActiveWorkbook.Save

Cuando hace referencia a una hoja o rango y omite el nombre del libro de trabajo, VBA asumirá que se está refiriendo al ActiveWorkbook:

1 Hojas ("Hoja1"). Nombre = "Entrada"

Abrir libro de trabajo y asignar a una variable

También puede abrir un libro de trabajo y asignarlo directamente a una variable de objeto. Este procedimiento abrirá un libro de trabajo al wb variable y luego guarde el libro de trabajo.

123456 Sub OpenWorkbookToVariable ()Dim wb como libro de trabajoEstablezca wb = Workbooks.Open ("C: \ Carpeta VBA \ Archivo de muestra 1.xlsx")wb.GuardarEnd Sub

Asignar libros de trabajo a variables cuando se abren es la mejor manera de realizar un seguimiento de sus libros de trabajo

Cuadro de diálogo Abrir archivo del libro de trabajo

También puede activar el cuadro de diálogo Abrir archivo del libro de trabajo. Esto permite al usuario navegar hasta un archivo y abrirlo:

12345678 Sub OpenWorkbook ()Dim strFile como cadenastrFile = Application.GetOpenFilename ()Workbooks.Open (strFile)End Sub

Como puede ver en la Imagen 1, con este enfoque los usuarios pueden elegir qué archivo abrir. El cuadro de diálogo Abrir archivo se puede personalizar en gran medida. Puede usar una carpeta determinada de forma predeterminada, elegir qué tipos de archivos están visibles (por ejemplo, solo xlsx) y más. Lea nuestro tutorial sobre el cuadro de diálogo Abrir archivo para obtener ejemplos detallados.

Abrir nuevo libro de trabajo

Esta línea de código abrirá un nuevo libro de trabajo:

1 Cuadernos de trabajo Agregar

Abrir nuevo libro de trabajo a variable

Este procedimiento abrirá un nuevo libro de trabajo, asignándolo a la variable wb:

1234 Sub OpenNewWorkbook ()Dim wb como libro de trabajoEstablecer wb = Workbooks.AddEnd Sub

Sintaxis del libro abierto

Cuando usa Workbooks.Open, es posible que observe que hay muchas opciones disponibles al abrir el libro:

El nombre de archivo es obligatorio. Todos los demás argumentos son opcionales y probablemente no necesitará conocer la mayoría de los demás argumentos. Estos son los dos más comunes:

Abrir libro de trabajo de solo lectura

Cuando el libro de trabajo se abre en modo de solo lectura, no se puede guardar sobre el archivo original. Esto evita que el usuario edite el archivo.

1 Libros de trabajo. Abra "C: \ Carpeta VBA \ Archivo de muestra 1.xlsx", Verdadero

Abrir libro protegido con contraseña

Un libro de trabajo puede estar protegido con contraseña. Utilice este código para abrir el libro de trabajo protegido con contraseña:

1 Libros de trabajo. Abra "C: \ Carpeta VBA \ Archivo de muestra 1.xlsx",,, "contraseña"

Notas de sintaxis de libro abierto

Observe que en la imagen de arriba, incluimos un paréntesis "(" para mostrar la sintaxis. Si usa paréntesis cuando trabaja con Workbooks.Open, debe asignar el libro de trabajo a una variable:

1234 Sub OpenWB ()Dim wb como libro de trabajoEstablezca wb = Workbooks.Open ("C: \ Carpeta VBA \ Archivo de muestra 1.xlsx", Verdadero, Verdadero)End Sub

Cerrar un libro de trabajo en VBA

Cerrar libro de trabajo específico

De forma similar a la apertura de un libro, existen varias formas de cerrar un archivo. Si sabe qué archivo desea cerrar, puede usar el siguiente código:

1 Workbooks.Close ("C: \ Carpeta VBA \ Archivo de muestra 1.xlsx")

Esta línea de código cierra el archivo "Archivo de muestra 1" si está abierto. De lo contrario, devolverá un error, por lo que debe encargarse del manejo de errores.

Cerrar el libro activo

Si desea cerrar el Libro de trabajo que está actualmente activo, esta línea de código le permitirá hacerlo:

1 ActiveWorkbook.Close

Cerrar todos los libros abiertos

Para cerrar todos los libros de trabajo abiertos, simplemente puede usar este código:

1 Cuadernos de trabajo Cerrar

Cerrar el primer libro abierto

Esto cerrará el primer libro de trabajo abierto / creado:

1 Libros de trabajo (1) .Cerrar

Reemplace 1 con 2 para cerrar el segundo libro de trabajo abierto / creado y así sucesivamente.

Cerrar sin guardar

Esto cerrará un libro de trabajo sin guardar y sin mostrar el mensaje de guardar:

1 ActiveWorkbook.Close savechanges: = Falso

Guardar y cerrar sin preguntar

De manera similar, esto guardará y cerrará un libro de trabajo sin mostrar el mensaje de guardado:

1 ActiveWorkbook.Close savechanges: = Verdadero

Nota: Hay varias otras formas de indicar si guardar o no un libro de trabajo y también si mostrar mensajes o no. Esto se discute con más detalle aquí.

Otros ejemplos abiertos de libros de trabajo

Abrir varios libros de trabajo nuevos

Este procedimiento abrirá varios libros de trabajo nuevos y los asignará a una matriz:

12345678 Sub OpenMultipleNewWorkbooks ()Dim arrWb (3) como libro de trabajoDim i como enteroPara i = 1 a 3Establecer arrWb (i) = Workbooks.AddSiguiente yoEnd Sub

Abrir todos los libros de Excel en una carpeta

Este procedimiento abrirá todos los libros de Excel en una carpeta, utilizando el selector de diálogo Abrir archivo.

12345678910111213141516 Sub OpenMultipleWorkbooksInFolder ()Dim wb como libro de trabajoDim dlgFD como FileDialogDim strFolder como cadenaDim strFileName como cadenaEstablecer dlgFD = Application.FileDialog (msoFileDialogFolderPicker)Si dlgFD.Show = -1 EntoncesstrFolder = dlgFD.SelectedItems (1) y Application.PathSeparatorstrFileName = Dir (strFolder & "* .xls *")Hacer mientras strFileName ""Establecer wb = Workbooks.Open (strFolder & strFileName)strFileName = DirCírculoTerminara siEnd Sub

Compruebe si un libro de trabajo está abierto

Este procedimiento probará si un libro de trabajo está abierto:

1234567891011 Sub TestByWorkbookName ()Dim wb como libro de trabajoPara cada wb en libros de trabajoSi wb.Name = "New Microsoft Excel Worksheet.xls" EntoncesMsgBox "Lo encontré"Salir del código de llamada de Sub aquí, saldremos por ahoraTerminara sipróximoEnd Sub

Evento Workbook_Open

Los eventos de VBA son "disparadores" que le dicen a VBA que ejecute cierto código. Puede configurar eventos de libro de trabajo para abrir, cerrar, antes de guardar, después de guardar y más.

Lea nuestro tutorial Workbook_Open Event para obtener más información sobre la ejecución automática de macros cuando se abre un libro.

Va a ayudar al desarrollo del sitio, compartir la página con sus amigos

wave wave wave wave wave