VBA ThisWorkbook

Excel VBA ThisWorkbook

VBA ThisWorkbook significa el libro de trabajo en el que estamos escribiendo el código de Excel. Por ejemplo, si está trabajando en el libro de trabajo denominado "Ventas 2019.xlsx", generalmente nos referimos al libro de trabajo de esta manera.

Libros de trabajo ("Ventas 2019.xlsx"). Activar

El código activará el libro de trabajo llamado "Ventas 2019.xlsx".

En lugar de escribir así, simplemente podemos escribir el código VBA a continuación.

ThisWorkbook.Activate '

Aquí ThisWorkbook se refiere al libro de trabajo en el que estamos escribiendo el código. Al hacer referencia a esta palabra, podemos ejecutar todas las tareas en el libro de trabajo actual y evitar un código extenso con un nombre de libro de trabajo completo.

Estoy seguro de que también debe haber visto la palabra "Libro de trabajo activo" cuando se refiere al código de los demás. Esta es también una de las palabras más utilizadas en la codificación. Veremos cuáles son las diferencias entre estas dos palabras en básico.

Trabajando con ThisWorkbook en Excel VBA

La palabra de referencia "ThisWorkbook" es más confiable que el calificador de objetos Workbooks. Una de las tendencias humanas es escribir mal el nombre del libro, lo que genera un mensaje de error.

Una razón más importante por la que VBA ThisWorkbook es más confiable porque, por si acaso, si cambiamos el nombre del libro de trabajo, necesitamos modificar el código porque hemos usado la palabra "ThisWorkbook".

Por lo tanto, ThisWorkbook es más seguro de usar para hacer referencia al libro de trabajo en el que estamos escribiendo el código.

Puede descargar esta plantilla de Excel de VBA ThisWorkbook aquí - Plantilla de Excel de VBA ThisWorkbook

Ejemplo 1

Veremos algunos de los ejemplos donde podemos usar la palabra ThisWorkbook en excel VBA. El siguiente código imprimirá el nombre del libro de trabajo.

Código:

 Sub TWB_Example1 () Dim WBName como cadena WBName = ThisWorkbook.Name MsgBox WBName End Sub 

Cuando ejecuta el código manualmente o usa la tecla F5, el código anterior mostrará el nombre del libro de trabajo en el cuadro de mensaje en VBA.

Ejemplo # 2

En lugar de usar la palabra "Este libro de trabajo", podemos usar variables para establecer la referencia del libro de trabajo e incluso reducir la longitud del código drásticamente en VBA. Por ejemplo, mire primero el siguiente código.

Código:

 Sub TWB_Example2 () ThisWorkbook.Activate ThisWorkbook.Worksheets ("Sheet1"). Active ThisWorkbook.Save ThisWorkbook.Close ThisWorkbook.SaveAs End Sub 

El código anterior ha utilizado "ThisWorkbook" en cada línea del código. Qué difícil es escribir la palabra todas y cada una de las veces. Entonces, podemos minimizar esto usando variables.

Ahora, mire el siguiente código con la variable.

Código:

 Sub TWB_Example2 () Dim Wb As Workbook Set Wb = ThisWorkbook Wb.Activate Wb.Worksheets ("Sheet1"). Activa Wb.Save Wb.Close Wb.SaveAs End Sub 

Se ve hermoso, ¿no?

Permítanme explicarles el código.

Primero he declarado la variable como objeto de libro de trabajo.

Dim Wb como libro de trabajo

Dado que esta es una variable de objeto, necesitamos establecer la referencia al libro de trabajo en particular. Así que he utilizado la referencia "ThisWorkbook".

Establecer Wb = ThisWorkbook

Ahora, la variable "Wb" está referenciada al libro de trabajo donde estamos escribiendo el código en este momento. De aquí en adelante en el procedimiento, no necesitamos usar la palabra "ThisWorkbook" en su lugar, podemos usar la variable "Wb"

Libro de trabajo activo vs ThisWorkbook en Excel VBA

Como dije al principio del artículo, muchos codificadores usan las palabras Active Workbook y ThisWorkbook muy a menudo en su codificación VBA. Como lector o principiante, no es fácil comprender estos dos. Entonces, déjame explicarte algunas de las diferencias.

Diferencia # 1: Significado

  • Libro de trabajo activo: Libro de trabajo activo no es necesariamente el libro de trabajo donde estamos escribiendo el código en este momento. Si tiene varios libros abiertos y el libro que esté visible en la pantalla se considerará como libro activo .
  • ThisWorkbook: ThisWorkbook es siempre el libro en el que estamos escribiendo el código en ese momento.

Diferencia 2: posibilidades de error

  • Libro de trabajo activo: el uso de Active en la codificación puede generar muchos errores y confusión porque nunca sabemos qué libro de trabajo está activo a menos que mencionemos específicamente el libro de trabajo para activar antes de usar la palabra Libro de trabajo activo.
  • ThisWorkbook: ThisWorkbook no puede salir mal porque no importa qué libro de trabajo esté activo, siempre toma la referencia del libro de trabajo en el que estamos escribiendo el código.