Activar hoja de trabajo en Excel en VBA
Este artículo nos ayuda a comprender cómo activar Worksheet en Excel en VBA con la ayuda de algunos ejemplos.
Activar hoja de trabajo en Excel en VBA
Cuando se trabaja en VBA con archivos de Excel, hay varias hojas. Si queremos ejecutar el mismo proceso o función en todas las hojas en uno o varios archivos de Excel, debemos activar otra hoja antes de ejecutar cualquier función.
Lleva tiempo escribir código para cada hoja por separado una y otra vez.
Para este propósito, VBA proporciona un método, Activate
, que se puede usar para activar cualquier hoja mientras se trabaja en Excel.
Veamos un ejemplo en el que usaremos el método de hoja de trabajo activar
de VBA para convertir la hoja en una hoja activa. Este método es ampliamente utilizado cuando escribimos macros VBA.
Podemos usar el nombre o el número de la Hoja de trabajo. La mejor manera es usar el nombre de la hoja.
Sub activateNewSheet()
Worksheets("Sheet2").Activate
'Worksheets(2).Activate
End Sub
Esto hará que la Hoja2
o la segunda hoja en el archivo de Excel sea una hoja de cálculo activa.
Objeto ActiveSheet
en VBA
Imagina si nuestra hoja actual está activa o si hemos activado otra hoja en nuestro código con la ayuda del método Activate
. Queremos mencionar la hoja actualmente activa para realizar algunas tareas.
Podemos mencionarlo fácilmente con la ayuda de un objeto creado específicamente para la hoja activa como ActiveSheet
.
Si estamos trabajando en gráficos o tablas y hemos olvidado qué hoja está activa en este momento, podemos usar el siguiente código para mencionar directamente la hoja actualmente activa en VBA. Podemos usar dos opciones para realizar la función en la hoja activa, como se muestra a continuación.
Sub addValueActiveSheet()
ActiveSheet.Range("B1")="Value"
Range("B1")="Value"
End Sub
Producción:
Como puede ver en el código anterior, hemos usado dos métodos y ambos dieron el mismo resultado porque no importa si mencionamos la hoja activa.
Una vez que establezcamos cualquier hoja como hoja activa, el siguiente código se implementará automáticamente en la misma hoja.
Establecer ActiveSheet
en VBA
Ahora, analicemos la configuración de ActiveSheet
en VBA. Es útil mencionar la hoja activa en Excel VBA configurándola en una variable.
Podemos configurar y asignar una hoja activa a un objeto y usar ese objeto para mencionar la hoja activa donde queramos. Podemos mencionarlo en cualquier lugar durante el procedimiento.
El siguiente código imprimirá algún valor en el rango B1
de la hoja activa.
Sub setActivSheet()
Dim active As Worksheet
Set active = ActiveSheet
active.Range("B1") = "Value"
End Sub
Producción: