¿cómo utilizar la variable vba thisworkbook en excel?
En VBA, puede utilizar la propiedad ThisWorkbook para hacer referencia al libro de trabajo en el que escribe el código. Cuando lo usa, tiene acceso a todas las propiedades y métodos del libro actual. En pocas palabras, puede ejecutar todas las tareas en el libro actual sin usar el nombre.
Suponga que desea contar las hojas del libro actual. El código que necesitas escribir sería el siguiente.
Sub vba_thisworkbook() MsgBox ThisWorkbook.Sheets.Count End Sub
Cuando ejecuta este código, aparece un cuadro de mensaje con la cantidad de hojas que tiene en el libro actual.
Como dije, cuando usas ThisWorkbook, te da acceso a las propiedades y al método del libro de trabajo actual. Puede ver todo esto cuando ingresa un punto (.) para ver la lista completa.
Enlaces útiles: Ejecutar una macro – Grabador de macros – Editor de Visual Basic – Manual de macros personales
Usando ThisWorkbook con una variable
A continuación, le mostraré un ejemplo de código real para declarar una variable para usar la propiedad ThisWorkbook. Suponga que desea realizar varias actividades en el libro de trabajo actual.
Sub vba_thisworkbook() Dim myWB As Workbook Set myWB = ThisWorkbook With myWB .Activate .Sheets(1).Activate .Range("A1") = Now .Save .Close End With End Sub
En la primera parte de este código, tiene una variable, luego asígnele la propiedad «ThisWorkbook». Y luego, en la segunda parte, tienes la DECLARACIÓN CON para realizar múltiples actividades con la variable actual.
ActiveWorkBook versus este libro de trabajo
Déjame explicártelo con una simple analogía, así que ten paciencia durante los próximos 2 minutos.
Tiene dos libros abiertos al mismo tiempo (Libro1 y Libro2). Escribe código en el libro1 pero el libro2 está activo en este punto. Entonces, cuando ejecute este código que hace referencia a ActiveWorkbook, realizará esta actividad en Book2 .
Pero cuando usa ThisWorkbook, VBA siempre hace referencia al libro de trabajo en el que está escrito el código.
Aquí está la cuestión: siempre es mejor utilizar ThisWorkbook porque elimina la posibilidad de error.