VBA Seleccionar Hoja, Activar Hoja y Obtener Hoja Activa
In this Article
Este artículo discutirá el objeto ActiveSheet en VBA. También discutirá cómo activar, seleccionar e ir a las hojas de trabajo (y mucho más). Lea nuestra Guía completa de Hojas de Trabajo VBA para obtener más información sobre cómo trabajar con hojas de trabajo en VBA.
Hoja Activa
En VBA, ActiveSheet se refiere a la hoja de trabajo actualmente activa. Sólo puede haber una hoja activa a la vez.
Activar la hoja de Trabajo (Establecer la hoja activa)
Para establecer la hoja activa utilice Worksheet.Activate:
Worksheets("entrada").Activate
El comando Activate realmente «irá a» la hoja, cambiando la hoja visible.
El ejemplo anterior utiliza el nombre de la hoja (Tab). En su lugar puede utilizar el nombre del código VBA para la hoja de trabajo:
Hoja1.Activate
Nombre de la hoja activa
Para obtener el nombre de la hoja activa:
msgbox ActiveSheet.name
Hojas seleccionadas vs Hoja Activa
En cualquier momento, sólo una hoja puede ser la hoja activa. Sin embargo, se pueden seleccionar varias hojas de trabajo a la vez.
Cuando se seleccionan varias hojas de trabajo, sólo se considera activa la hoja de trabajo «más alta» (la hoja activa).
Seleccionar hoja de trabajo
Si desea seleccionar una hoja de trabajo en lugar de activarla. Utilice .Select en su lugar.
Seleccionar hoja de trabajo por nombre de pestaña
Esto selecciona una hoja de trabajo basándose en el nombre de la pestaña de la hoja
Sheets("entrada").Select
Seleccionar hoja de trabajo por número de índice
Esto selecciona una hoja de trabajo basada en su posición relativa a otras pestañas
Worksheets(1).Select
Seleccione la hoja de trabajo con el nombre del código VBA
Hoja1.Select
Seleccionar las hojas de trabajo por el nombre del código puede evitar errores causados por los cambios de nombre de las hojas de trabajo.
Seleccionar la hoja de trabajo actual
Para seleccionar la hoja de trabajo actual, utilice el objeto ActiveSheet:
ActiveSheet.Select
Más ejemplos de activar / seleccionar hoja de trabajo
Asignar hoja activa a una variable
Esto asignará la hoja activa a una Variable tipo Objeto Worksheet.
Dim hoja As Worksheet
Set hoja = ActiveSheet
Cambiar el nombre de la hoja activa
Esto cambiará el nombre de la hoja activa.
ActiveSheet.Name = "nombreNuevo"
With ActiveSheet
El uso de la sentencia With permite agilizar el código cuando se trabaja con objetos (como Sheets o ActiveSheet).
With ActiveSheet
.Name = "Nuevo Nombre"
.Cells.Clear
.Range("A1").Value = .Name
End With
Fíjate en que no necesitas repetir «ActiveSheet» antes de cada línea de código. Esto puede ser un gran ahorro de tiempo cuando se trabaja con una larga lista de comandos.
Recorrer las hojas seleccionadas
La siguiente macro hará un bucle a través de todas las hojas seleccionadas, mostrando sus nombres.
Sub obtenerNombreDeHojasSeleccionadas()
Dim hoja As Worksheet
For Each hoja In ActiveWindow.SelectedSheets
MsgBox hoja.Name
Next hoja
End Sub
Ir a la siguiente hoja
Este código irá a la siguiente hoja. Si la Hoja Activa es la última Hoja, entonces irá a la primera Hoja del Libro de Trabajo.
If ActiveSheet.Index = Worksheets.Count Then
Worksheets(1).Activate
Else
ActiveSheet.Next.Activate
End If
La codificación VBA es fácil
Deje de buscar código VBA en línea. Aprenda más sobre AutoMacro – Un generador de código VBA que permite a los principiantes codificar procedimientos desde cero con un mínimo conocimiento de codificación y con muchas características que ahorran tiempo a todos los usuarios