VBA Rutinas para añadir y nombrar hojas de trabajo

Written by

Editorial Team

Reviewed by

Steve Rynearson

Translated by

Dennis Madrid

Last updated on agosto 22, 2022

Este tutorial discutirá cómo agregar / insertar hojas de trabajo utilizando VBA.

Agregar Hoja

Esta sencilla macro añadirá una Hoja antes de la Hoja Activa:

Sub Agregar()
  Sheets.Add
End Sub

Después de insertar una Hoja, la nueva Hoja se convierte en la Hoja Activa. Entonces puede utilizar el objeto ActiveSheet para trabajar con la nueva Hoja (Al final de este artículo mostraremos cómo insertar una nueva hoja directamente en una variable).

ActiveSheet.Name = "Hoja Nueva"

Añadir Hoja con nombre

También puedes definir un nombre de Hoja mientras creas la nueva Hoja:

Sheets.Add.Name = "HojaNueva"

Crear una nueva Hoja con nombre desde una celda

O utilizar un valor de celda para nombrar una nueva Hoja:

Sheets.Add.Name = range("a3").value

Añadir Hoja antes / después de otra Hoja

También puede querer elegir la ubicación de donde se insertará la nueva Hoja. Puede utilizar las propiedades After o Before para insertar una hoja en una ubicación específica del libro de trabajo.

Insertar Hoja después de otra Hoja

Este código insertará la nueva Hoja después de otra Hoja:

Sheets.Add After:=Sheets("Entrada")

Esto insertará una nueva Hoja despues de otra Hoja y especificará el nombre de la hoja:

Sheets.Add(After:=Sheets("Entrada")).Name = "NuevaHoja"

Observe el paréntesis extra requerido en el segundo ejemplo (el primer ejemplo generará un error si se añade el segundo paréntesis).

Agregar y nombrar hoja despues

o Antes:

Sheets.Add(Before:=Sheets("Entrada")).Name = "NuevaHoja"

En estos ejemplos nombramos explícitamente la Hoja utilizada para determinar la ubicación de la hoja. A menudo querrá utilizar el número de índice de la Hoja en su lugar, para poder insertar la hoja al principio o al final del Libro de Trabajo:

Añadir Hoja al final del Libro de Trabajo

Para añadir una Hoja al final del Libro de Trabajo:

Sheets.Add After:=Sheets(Sheets.Count)

Añadir Hoja al principio del Libro de Trabajo:

Para añadir una hoja al principio del libro:

Sheets.Add(Before:=Sheets(1)).Name = "PrimeraHoja"

Añadir Hoja a una variable

Este código asigna la nueva Hoja a una variable a medida que se crea la hoja:

Dim hoja As Worksheet
Set hoja = Sheets.Add

A partir de aquí puedes referenciar la nueva hoja con la variable ‘hoja’:

hoja.name = "variable"

Más ejemplos de añadir Hoja

Crear una hoja si no existe ya

Puede querer crear una hoja sólo si no existe ya.

<cabecera

<<Volver a los ejemplos de VBA

fin de la cabecera –>

Crear hojas de trabajo a partir de una lista de nombres

La siguiente rutina mirará el contenido de una sola columna y creará hojas de trabajo de Excel dentro del libro actual con estos nombres. Hace una llamada a otra función para ver si ya existe una hoja con ese nombre, y si es así no se crea la hoja.

Sub btAgregarHojas()
    Call CrearHojas(Sheets("Hoja2").Range("A1:a10"))
End Sub
 
Sub CrearHojas(nombresDeHojas As Range)
    Dim numeroDeHojasAgregar As Integer
    Dim nombreDeHoja As String
    Dim i As Integer
    numeroDeHojasAgregar = nombresDeHojas.Rows.Count
    For i = 1 To numeroDeHojasAgregar
        nombreDeHoja = nombresDeHojas.Cells(i, 1).Value
         
        'Sólo añade la hoja si no existe ya y el nombre tiene más de cero caracteres
        If (ExisteHoja(nombreDeHoja) = False) And (nombreDeHoja <> "") Then
            Worksheets.Add().Name = nombreDeHoja
        End If
    Next i
 
End Sub
Function ExisteHoja(nombre_de_hoja As String) As Boolean
    Dim hoja As Worksheet
    ExisteHoja = False
    For Each hoja In ThisWorkbook.Worksheets
        If hoja.Name = nombre_de_hoja Then
            ExisteHoja = True
        End If
    Next
End Function

Así que si tenemos el siguiente texto en las celdas A1:A30 en la Hoja2:

Agregar hojas datos

 

Entonces se crearán las siguientes hojas:

Agregar hojas resultado

Observe que aunque «Perro» aparece dos veces, sólo se crea una hoja.

Para descargar el archivo .XLS para este tutorial, haga clic aquí.

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 alt text Más información

<<Volver a los ejemplos de VBA

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