Si eres usuario de Excel y quieres dar un paso más allá en tu manejo de esta herramienta, es hora de sumergirse en la programación. Una de las formas más accesibles de automatizar tareas en Excel es utilizando Visual Basic for Applications (VBA). En este artículo, te mostraremos cómo escribir un código VBA que te permitirá crear una nueva hoja en Excel utilizando macros. ¡Prepárate para llevar tu experiencia de Excel al siguiente nivel!
Una vez que comience a aprender VBA, una de las mejores cosas que puede hacer es escribir un código VBA para insertar una nueva hoja de trabajo en un libro.
Bueno, ya existe una tecla de acceso directo para insertar una nueva hoja de trabajo o también puedes usar la opción normal, pero el beneficio de usar un código VBA es que puedes agregar varias hojas de trabajo con un solo clic y también puedes definir dónde quieres agregar. él.
Para esto, necesita usar el método Sheets.Add y en esta publicación aprenderemos cómo usarlo para agregar una o más hojas de trabajo en un libro.
Hojas. Agregar método
Sheets.Add ([Before], [After], [Count], [Type])
- Antes: Para agregar una nueva hoja antes de una hoja.
- Después: Para agregar la nueva hoja antes de una hoja.
- Contar: Número de hojas a agregar.
- Tipo: Tipo de hoja que desea agregar (ENLACE)
Escriba un código VBA para AGREGAR una nueva hoja en un libro de trabajo
Abra el editor visual basic y siga estos pasos.
- Primero, debe ingresar el método Sheets.Add.
- Luego necesitas definir el lugar donde agregar la nueva hoja (Antes o Después).
- Lo siguiente es ingresar el conteo de hojas de trabajo.
- Al final, el tipo de hoja.
Diferentes formas de agregar nuevas hojas en un libro de trabajo usando un código VBA
A continuación tiene diferentes formas de agregar una nueva hoja a un libro de trabajo:
1. Agregue una sola hoja
Para agregar una sola hoja, puede usar el siguiente código, donde no especificó ningún argumento.
Sub SheetAddExample1()
ActiveWorkbook.Sheets.Add
End Sub
Este código le dice a Excel que agregue una hoja en el libro activo, pero como no tiene ningún argumento, usará los valores predeterminados y agregará una hoja de trabajo (xlWorksheet) antes de la hoja activa.
Aquí hay una forma más de escribir esto; consulte el siguiente código.
Sub SheetAddExample2()
Sheets.Add
End Sub
Como ya está en el libro de trabajo activo, también puede utilizar el siguiente código. Hace la misma cosa.
2. Agregue varias hojas
Para agregar varias hojas de una sola vez, solo necesita definir el argumento COUNT con la cantidad de hojas que desea agregar.
Sub AddSheets3()
Sheets.Add Count:=5
End Sub
Ahora el recuento de hojas que ha definido es 5, por lo que cuando ejecuta este código, agrega instantáneamente las cinco hojas nuevas en el libro.
3. Agregue una hoja con un nombre
Si desea cambiar el nombre de la hoja después de agregarla, puede usar el siguiente código:
Sub AddNewSheetswithNameExample1()
Sheets.Add.Name = "myNewSHeet"
End Sub
En el código anterior, hemos utilizado el nombre del objeto (ENLACE) que le ayuda a especificar el nombre de una hoja.
4. Agregue una hoja con un nombre de una celda
También puede tomar el valor para usar como nombre de la hoja de una celda.
Sub AddNewSheetswithNameExample2()
Sheets.Add.Name = Range("A1")
End Sub
En el código anterior, la celda A1 se utiliza para obtener el nombre de la nueva hoja.
5. Agregue una hoja antes o después de una hoja específica
Como estos argumentos ya están en Sheets.Add, donde puede especificar la hoja para agregar una nueva hoja antes o después de ella.
Sub AddSheetsExample5()
Sheets.Add Before:=Worksheets("mySheet")
Sheets.Add After:=Worksheets("mySheet")
End Sub
Ahora, en el código anterior, tiene dos líneas de código que utilizó antes y después de un argumento en el método Sheet.Add. Entonces, cuando ejecuta este código, agrega dos hojas, una antes y otra después de “mySheet”.
6. Agregue una nueva hoja al principio
Al usar el argumento anterior, también puede agregar una hoja al comienzo de las hojas que tiene en el libro.
Básicamente, lo que vamos a hacer es especificar el número de hoja en lugar del nombre de la hoja.
Sub AddSheetsExample6()
Sheets.Add Before:=Sheets(1)
End Sub
En el código anterior, ha utilizado la hoja número (1) que le indica a VBA que agregue la hoja antes de la hoja que está en la primera posición en todas las hojas de trabajo. De esta forma siempre agregará la nueva hoja al principio.
7. Agregue una hoja nueva al final (después de la última hoja)
Para agregar una nueva hoja al final, debes escribir el código de una manera diferente. Entonces, para esto, necesita saber cuántas hojas hay en el libro para poder agregar una nueva hoja al final.
Sub AddSheetsExample8()
Sheets.Add After:=Sheets(Sheets.Count)
End Sub
En el código anterior, Sheet.Count devuelve el recuento de las hojas que tiene en el libro y, como ha definido el argumento posterior, agrega la nueva hoja después de la última hoja del libro.
8. Agregue varias hojas y use nombres de un rango
El siguiente código cuenta filas del rango A1:A7. Después de eso, realiza un bucle para agregar hojas de acuerdo con el recuento del rango y usa valores del rango para nombrar la hoja mientras la agrega.
Sub AddSheetsExample9()
Dim sheets_count As Integer
Dim sheet_name As String
Dim i As Integer
sheet_count = Range("A1:A7").Rows.Count
For i = 1 To sheet_count
sheet_name = Sheets("mySheet").Range("A1:A7").Cells(i, 1).Value
Worksheets.Add().Name = sheet_name
Next i
End Sub
Pero con el código anterior, existe la posibilidad de que el nombre de la hoja que desea agregar ya exista o que tenga una celda en blanco en el rango de nombres.
En ese caso, debe escribir un código que pueda verificar si la hoja con el mismo nombre ya existe o no y si la celda de donde desea tomar el nombre de la hoja está en blanco o no.
Sólo si se cumplen ambas condiciones entonces se deberá agregar una nueva hoja. Déjame ponerlo en dos pasos:
Primeronecesitas escribir un Función definida por el usuario de Excel para comprobar si ya existe o no una hoja con el mismo nombre.
Function SheetCheck(sheet_name As String) As Boolean
Dim ws As Worksheet
SheetCheck = False
For Each ws In ThisWorkbook.Worksheets
If ws.Name = sheet_name Then
SheetCheck = True
End If
Next
End Function
En segundo lugar, debe escribir un código usando esta función y ese código también debe verificar si la celda del nombre está en blanco o no.
Sub AddMultipleSheet2()
Dim sheets_count As Integer
Dim sheet_name As String
Dim i As Integer
sheet_count = Range("A1:A7").Rows.Count
For i = 1 To sheet_count
sheet_name = Sheets("mySheet").Range("A1:A10").Cells(i, 1).Value
If SheetCheck(sheet_name) = False And sheet_name <> "" Then
Worksheets.Add().Name = sheet_name
End If
Next i
End Sub
Ahora, en el código anterior, ha utilizado la declaración IF de VBA y en esta declaración, tiene la función de verificación de hoja que verifica el nombre de la hoja y luego tiene una condición para verificar si la celda del nombre tiene un valor en blanco.
Archivo de muestra
Error 403 The request cannot be completed because you have exceeded your quota. : quotaExceeded
Cómo escribir un código VBA para crear una nueva hoja en Excel (Macro)
Si eres usuario de Excel y te gustaría automatizar tareas repetitivas, el uso de macros VBA puede ser una excelente solución. En este artículo, te mostraremos cómo escribir un código VBA para crear una nueva hoja en Excel.
Paso 1: Abrir el Editor de Visual Basic
Para empezar, abre Excel y presiona Alt + F11 para acceder al Editor de Visual Basic. Asegúrate de tener habilitado el complemento de macros para poder abrir el Editor. Si no lo tienes habilitado, puedes encontrar instrucciones para hacerlo en la documentación oficial de Microsoft.
Paso 2: Crear un nuevo módulo
En el Editor de Visual Basic, selecciona el menú Insertar y haz clic en Módulo. Esto creará un nuevo módulo en el proyecto.
Paso 3: Escribir el código VBA
En el módulo recién creado, puedes comenzar a escribir el código VBA para crear una nueva hoja en Excel. A continuación, te mostramos un ejemplo de código:
Sub CrearNuevaHoja()
Dim nuevaHoja As Worksheet
Set nuevaHoja = ThisWorkbook.Sheets.Add(After:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count))
nuevaHoja.Name = "Nueva Hoja"
End Sub
En este código, se declara una variable nuevaHoja
como objeto de hoja de cálculo. Luego, se utiliza el método Add
para agregar una nueva hoja después de la última hoja existente en el libro de Excel. Finalmente, se utiliza la propiedad Name
para asignar un nombre a la nueva hoja.
Paso 4: Ejecutar el código VBA
Una vez que hayas escrito el código, puedes ejecutarlo simplemente presionando F5 o haciendo clic en el botón de “Ejecutar” en la parte superior de la ventana del Editor de Visual Basic. Al ejecutar el código, se creará una nueva hoja en tu libro de Excel con el nombre especificado en el código.
Conclusión
Crear una nueva hoja en Excel utilizando macros VBA puede ahorrarte tiempo y esfuerzo, especialmente si necesitas realizar esta tarea de forma frecuente. Esperamos que este artículo te haya proporcionado una guía útil para escribir un código VBA que cumpla con este propósito.
Si deseas aprender más sobre programación de macros en VBA, te recomendamos consultar la documentación oficial de Microsoft sobre VBA. ¡Buena suerte automatizando tus tareas en Excel!