VBA Obtener el nombre de la Hoja / Cambiar el nombre de la Hoja

Written by

Editorial Team

Reviewed by

Steve Rynearson

Translated by

Dennis Madrid

Last updated on febrero 5, 2023

Este tutorial cubrirá la interacción con los nombres de las hojas en VBA.

Obtener el nombre de la hoja

Los nombres de las hojas se almacenan en la propiedad Name del objeto Sheets o Worksheets. El Nombre de la hoja es el nombre de la «pestaña» que es visible en la parte inferior de Excel, en este caso, ‘Hoja1’:

Nombre de hoja de trabajo

Obtener el Nombre de la Hoja Activa

Esto mostrará el nombre de la Hoja Activa  en un cuadro de mensaje:

MsgBox ActiveSheet.Name

Obtener el nombre de la hoja por número de índice

Esto mostrará el nombre de la primera hoja de trabajo en un cuadro de mensaje:

MsgBox Sheets(1).Name

Esto mostrará el nombre de la última hoja de trabajo en el libro de trabajo:

MsgBox Sheets(Sheets.Count).Name

Obtener el nombre de la hoja por el nombre del código

En el Editor VBA, hay una opción para cambiar el «nombre de código» de una Hoja. El nombre de código no es visible para el usuario de Excel y sólo puede verse en el Editor VBA:

Nombre codigo de hoja

En VBA, cuando se trabaja con Hojas, se puede hacer referencia al nombre habitual de la Pestaña:

Sheets("Hoja1").Activate

o el nombre del código VBA:

NombreCodigo.Activate

Hacer referencia al nombre del código es deseable en caso de que el nombre de la pestaña de la Hoja cambie alguna vez. Si usted permite que el usuario de Excel tenga acceso a los nombres de las hojas que cambian, debe hacer referencia al nombre del código en su código VBA para que una falta de coincidencia del nombre de la pestaña de la hoja no cause un error. Los nombres de los códigos de las hojas se discuten con más detalle aquí. Para obtener el nombre de la hoja utilizando el nombre del código VBA, haga lo siguiente:

MsgBox NombreCodigo.Name

Cambiar el nombre de la hoja

Puede renombrar las hojas ajustando la propiedad name del objeto Sheets o Worksheets.

Cambiar el nombre de ActiveSheet

ActiveSheet.Name = "NuevoNombre"

Cambiar el nombre de la hoja por el nombre

Sheets("HojaVieja").Name = "NuevoNombre"

Cambiar el nombre de la hoja por el número de índice de la hoja

Aquí usamos 1 para renombrar la primera Hoja del Libro de Trabajo.

Sheets(1).Name = "NuevoNombre"

Cambiar el nombre de la hoja por el nombre del código

Este código renombrará una hoja usando su nombre de código VBA (discutido anteriormente):

NombreCodigo.Name = "NuevoNombre"

Comprobar si el nombre de la hoja existe

Creamos una función para comprobar si ya existe una Hoja con un nombre determinado.

'Comprueba si existe un rango en una Hoja.
'Deja el rango en blanco para probar si la hoja existe
'Entradas:
' hoja - Nombre de cadena de la Hoja (ej. "Hoja1")
' rango (Opcional, Por defecto = "A1") - Cadena de nombre del rango (por ejemplo "A1")
Function ExisteHoja(hoja As String, Optional ByVal rango As String = "A1") As Boolean
    Dim prueba As Range
    On Error Resume Next
    Set prueba = ActiveWorkbook.Sheets(hoja).Range(rango)
    ExisteHoja = Err.Number = 0
    On Error GoTo 0
End Function

La función devolverá TRUE si la Hoja existe, o FALSE si no existe.

Utilice la función así:
Sub pruebaHojaExiste()
    msgbox ExisteHoja("Configurar")
End Sub

Copiar Hoja y Renombrar

Este ejemplo es de nuestro artículo sobre la copia de hojas. Después de copiar y pegar una Hoja, la nueva hoja creada se convierte en la Hoja Activa. Así que para renombrar una hoja copiada, simplemente usa ActiveSheet.Name:

Sub CopiarRenombrarHoja()
 
    Sheets("Hoja1").Copy After:=Sheets(Sheets.Count)
    On Error Resume Next
    ActiveSheet.Name = "Ultima Hoja"
    On Error GoTo 0
 
End Sub

Nota: Hemos añadido el manejo de errores para evitar errores si el nombre de la hoja ya existe.

vba-free-addin

Complemento de Ejemplos de Código de VBA

Acceda fácilmente a todos los ejemplos de código que se encuentran en nuestro sitio.

Simplemente navegue al menú, haga clic y el código se insertará directamente en su módulo. Complemento .xlam.

(¡No se requiere instalación!)

Descarga gratuita

Return to VBA Code Examples