Diferencias entre thisworkbook y activeworkbook

¿Sabes qué diferencia hay entre ThisWorkbook y ActiveWorkbook?

Cuando estamos utilizando macros en Excel es posible que tengamos la duda de qué es ThisWorkbook y en qué consiste el ActiveWoorkbook. Ambos conceptos son muy similares y por este motivo prestan a confusión. Pero aquí os explicamos las pequeñas diferencias que hay entre cada uno de ellos para que nos los confundas.

Concepto de ThisWorkbook

Este término o palabra clave hace referencia al libro de Excel que contiene el macro que estamos ejecutando. Es decir, cuando aplicamos un macro en la hoja de Excel utilizamos un código de programación de VBA, donde estamos usando ese código se denomina ThisWorkbook. Se trata del libro de trabajo que almacena el código del macro.

Cuando trabajamos con diferentes macros con el objeto “ThisWorkbook” deben ser diferentes entre sí. Es decir, las macros deben ser únicas por cada evento. En algunas ocasiones los usuarios tienen problemas al ejecutar la palabra clave “ThisWorkbook” al utilizar eventos iguales. Por ejemplo, no se pueden aplicar dos eventos Open ni dos eventos BeforePrint.

Concepto de ActiveWorkbook

El término ActiveWorkbook hace referencia al libro activo que estamos utilizando en ese momento, es el libro operativo. Cuando estamos trabajando con un único libro de Excel ambos términos harán referencia a los mismo, sin embargo cuando trabajamos a la vez con varios libros de excel abiertos sí que existe diferencia entre ThisWorkbook y ActiveWorkbook.

¿Qué diferencia existe entre ThisWorkbook y ActiveWorkook?

Como hemos visto la diferencia radica cuando estamos trabajando con varios libros de Excel a la vez. Pongamos un ejemplo para entenderlo mejor.

  1. Comenzamos a trabajar en un libro llamado “Ejemplo 1” y aplicamos un macro de Excel para filtrar datos.
  2. Nos trasladamos a otro libro llamado “Ejemplo 2” y comenzamos a trabajar en la hoja de Excel. En este momento solo funcionaría la instrucción “ActiveWorkbook” ya que la acción “ThisWorkbook” que hemos incluido en el paso anterior está limitada al libro Ejemplo 1.

Cuando estamos trabajando en Excel con varios libros a la vez tenemos que poner especial cuidado, ya que tenemos que ver en cada momento qué palabra clave es la más apropiada.

Ejemplos de casos de ActiveWorkbook

¿Cómo activar un segundo libro? Cuando abrimos un libro en Excel se convierte en activo. Pero si queremos activar dos libros podemos aplicar el siguiente macro:

Sub Activar_otro_libro ()

Debug.Print “Ejemplo1.xlsm activado”

Workbooks(“Ejemplo2.xlsm”). Activate

Debug.Print “Ejemplo2.clsm activado”

End Sub

Una vez se ejecuta este código de VBA en la consola observaremos como “Ejemplo1.xlsm” y “Ejemplo2.xlsm”están “activado” ambos.

¿Cómo guardar un libro de Excel con otro término de ruta? Aplicando este código de VBA podemos modificar el nombre de ruta del libro.

Sub gaurdar_un_libro_con_ruta_nomlibro()

ruta=”C:\Users\Exemple\Desktop”

libro= “Ejemplo3.xlsm”

ActiveWoorkbook.SaveAs ruta & ” \ ” & libro

End Sub