¿cómo activar un libro de excel a través de vba?
Cuando trabaja con varios libros al mismo tiempo, es decir, cuando tiene varios libros abiertos al mismo tiempo, necesita conocer el método que puede ayudarle a activar un libro en el que desea trabajar.
Para activar un libro usando VBA, debe usar el método Workbook.Activate. En este método, debe especificar el nombre del libro de trabajo utilizando el objeto Libro de trabajo. También le permite usar el número del libro en lugar del nombre del libro, pero solo puede hacer referencia a libros abiertos.
En este tutorial analizamos diferentes formas de utilizar este método.
Pasos para activar un libro de trabajo
- Escriba «Carpetas» para utilizar el objeto de carpeta.
- Especifique el nombre del libro entre comillas dobles.
- Ingrese un punto (.) para obtener una lista de propiedades y métodos.
- Seleccione el método Activar de la lista o también puede ingresarlo.
- Al final, ejecute el código para activar el libro.
Sub vba_activate_workbook() Workbooks("Book3").Activate End Sub
Nota: Si intenta activar un libro que no está abierto, VBA mostrará un error.
Relacionado: Activar una hoja de cálculo usando VBA
Enlaces útiles: Ejecutar una macro – Grabador de macros – Editor de Visual Basic – Manual de macros personales
Activar un libro usando el número
Cuando tiene varios libros abiertos, todos estos libros pasan a formar parte de la colección de libros y tienen un número al que puede hacer referencia y luego puede usar el método de activación con él. Aquí está el código:
Sub vba_activate_workbook() Workbooks(2).Activate End Sub
Y si intenta activar un libro usando un número que no existe, VBA le mostrará un error de tiempo de ejecución ‘9’ (Subíndice fuera de rango).
Activar este libro
Puede consultar el libro de trabajo en el que escribe el código utilizando la propiedad ThisWorkbook. Digamos que tiene cinco libros abiertos al mismo tiempo pero está trabajando en el «Libro1.xlsm», por lo que cuando ejecute el siguiente código, se activará el «Libro1.xlsm».
Sub vba_activate_workbook() ThisWorkbook.Activate End Sub
Verificar antes de activar un libro de trabajo
Como dije, cuando intentas activar un libro que no está abierto, VBA te muestra un error. Para resolver este problema, la mejor manera es verificar primero el nombre del libro (si está abierto o no) y luego activarlo.
Sub vba_activate_workbook() Dim wb As Workbook For Each wb In Workbooks If wb.Name = "Book3.xlsx" Then wb.Activate MsgBox "Workbook found and activated" Exit Sub End If Next wb MsgBox "Not found" End Sub
Usando el código anterior, puede especificar un nombre de libro de trabajo y esto primero buscará este libro de trabajo en todos los libros de trabajo abiertos y, si encuentra el libro de trabajo, lo activará.
Comentarios
- Cuando utilice el nombre del libro de trabajo, asegúrese de utilizar la extensión de archivo correcta
- Si desea activar un libro que aún no está guardado, debe usar solo el nombre de ese libro sin agregar el sufijo a la extensión del archivo.