Este artículo discutirá el objeto ActiveSheet en VBA. También discutirá cómo activar, seleccionar e ir a Hojas de trabajo (y mucho más). Lea nuestra Guía completa de hojas de trabajo de 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. Solo puede haber una hoja activa a la vez.
Activar hoja de trabajo (configuración de ActiveSheet)
Para configurar ActiveSheet, use Worksheet.
1 | Hojas de trabajo ("Entrada"). Activar |
El comando Activar hoja en realidad "irá" a la hoja, cambiando la hoja visible.
El ejemplo anterior usa el nombre Hoja (pestaña). En su lugar, puede usar el nombre del código de VBA para la hoja de trabajo:
1 | Sheet1.Activate |
Nombre de ActiveSheet
Para obtener el nombre de ActiveSheet:
1 | msgbox ActiveSheet.name |
Hojas seleccionadas vs ActiveSheet
En cualquier momento, solo una Hoja puede ser ActiveSheet. Sin embargo, se pueden seleccionar varias hojas de trabajo a la vez.
Cuando se seleccionan varias hojas de trabajo, solo la hoja de trabajo "superior" se considera activa (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 basada en el nombre de la pestaña de la hoja.
1 | Hojas ("Entrada"). Seleccione |
Seleccionar hoja de trabajo por número de índice
Esto selecciona una hoja de trabajo en función de su posición en relación con otras pestañas
1 | Hojas de trabajo (1) .Seleccionar |
Seleccione la hoja de trabajo con el nombre del código VBA
1 | Hoja1.Seleccionar |
La selección de hojas de trabajo por nombre de código puede evitar errores causados por cambios en el nombre de la hoja de trabajo.
Seleccionar hoja de trabajo actual
Para seleccionar la hoja de trabajo actual, use el objeto ActiveSheet:
1 | ActiveSheet.Seleccione |
Más ejemplos de hoja Activar / Seleccionar
Establecer ActiveSheet en variable
Esto asignará ActiveSheet a una variable de objeto de la hoja de trabajo.
123 | Dim ws como hoja de trabajoEstablecer ws = ActiveSheet |
Cambiar el nombre de ActiveSheet
Esto cambiará el nombre de ActiveSheet.
1 | ActiveSheet.Name = "NewName" |
Con ActiveSheet
El uso de With Statement le permite optimizar su código cuando trabaja con objetos (como Sheets o ActiveSheet).
12345 | Con ActiveSheet.Name = "StartFresh".Cells.Clear.Rango ("A1"). Valor = .NombreTerminar con |
Observe que no necesita repetir "ActiveSheet" antes de cada línea de código. Esto puede suponer un gran ahorro de tiempo cuando se trabaja con una larga lista de comandos.
Recorrer las hojas seleccionadas
La siguiente macro recorrerá todas las hojas seleccionadas, mostrando sus nombres.
12345678 | Sub GetSelectedSheetsName ()Dim ws como hoja de trabajoPara cada ws en ActiveWindow.SelectedSheetsMsgBox ws.NameSiguiente wsEnd Sub |
Ir a la hoja siguiente
Este código irá a la siguiente hoja. Si ActiveSheet es la última hoja, irá a la primera hoja del libro de trabajo.
12345 | Si ActiveSheet.Index = Worksheets.Count ThenHojas de trabajo (1) .ActivarDemásActiveSheet.Next.ActivateTerminara si |