VBA Rutinas para añadir y nombrar hojas de trabajo
In this Article
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).
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
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:
Entonces se crearán las siguientes hojas:
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 Más información