Activar libro usando VBA en Excel ~ Libro.Activar
El método Activate
de la clase Workbook
se utiliza para poner encima el libro de trabajo seleccionado.
Aquí mostraré diferentes formas de especificar qué libro de trabajo quieres activar.
Por ejemplo, la macro en el libro de Excel añade un nuevo libro que aparece automáticamente en la parte superior.
Para que el libro Excel que contiene la macro aparezca de nuevo en la parte superior, refiérase a él como ThisWorkbook
y llama al método Activate
:
Dim wb As Workbook: Set wb = Workbooks.Add
ThisWorkbook.Activate
Workbook
se obtiene de la clase Application.ThisWorkbook
procedimiento.
Dado que el Application.ThisWorkbook
es global Application
puede omitirse de la declaración.

Activar libro de trabajo por nombre de archivo
Si conoce el nombre del archivo, puede utilizarlo para identificar el libro de trabajo que debe anteponerse.
Workbooks("Demo.xlsm").Activate
Workbooks("Demo.xlsm").Windows(2).Activate
Activar libro de trabajo con nombre variable
El uso de un nombre de variable en lugar de la cadena literal hace que su código sea más flexible.
Además, tener una variable Workbook
wb
le permite realizar más de una acción en el libro de trabajo seleccionado.
Dim strWorkbook As String: strWorkbook = "Demo.xlsm"
Dim wb As Workbook
Set wb = Workbooks(strWorkbook)
wb.Activate
Activar el libro de trabajo con la ruta completa
Como la imagen de arriba muestra los libros de trabajo para ser identificado por el nombre de archivo con extensión - excluyendo ruta. Código para obtener seleccionar el libro de trabajo para activar entonces viene en dos pasos:
- Determine el nombre de archivo para identificar el libro de trabajo;
- Aplique el
Activate
método.
El siguiente código utiliza la función FileName
que toma la parte requerida del nombre completo incluyendo la ruta en el disco.
Dim strFile As String: strFile = "C:\temp\test.xlsm"
Dim strFileName As String
strFileName = FileName(File:=strFile)
Workbooks(strFileName).Activate
Public Function FileName(File As String) As String
'?FileName("c:\a\b\c.txt") -> c.txt
FileName = Right(File, Len(File) - InStrRev(File, "\"))
End Function
Activar libro de trabajo con comodín
A veces, se sabe que el nombre del archivo sigue un patrón determinado, pero contiene una parte verificable, por ejemplo, un número de semana. La identificación en las colecciones debe ser exacta, no se pueden utilizar comodines directamente.
- En VBA El suministro de un valor inexacto al índice de la propiedad Item de una colección tiene como resultado
- En
Like
el operador distingue entre mayúsculas y minúsculas
Dim wb As Workbook
For Each wb In Workbooks
If wb.Name Like "Dem*.xlsm" Then
wb.Activate
Exit For
End If
Next
Activar libro y hoja
Para activar tanto un libro de trabajo como una hoja en él, básicamente puedes hacer una cosa y la otra.
Dim wb As Workbook
Set wb = Workbooks(Index:="data123.xlsx")
wb.Activate
Dim ws As Worksheet
Set ws = wb.Sheets(Index:="Countries")
ws.Activate
O quizás un poco más bonito mostrando que la hoja pertenece al libro de trabajo utilizando la estructura With
:
Dim wb As Workbook
Set wb = Workbooks(Index:="data123.xlsx")
With wb
.Activate
.Sheets(Index:="Countries").Activate
End With
Autor: Mark Uildriks Referencia: Workbook.Activate() | Microsoft Learn