¿cómo crear una nueva hoja usando código vba?

Una vez que comience a aprender VBA, una de las mejores cosas que puede hacer es escribir código VBA para insertar una nueva hoja de trabajo en un libro.

Bueno, ya existe un atajo para insertar una nueva hoja de trabajo o también puedes usar la opción normal, pero la ventaja de usar código VBA es que puedes agregar múltiples 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 este artículo aprenderemos cómo usarlo para agregar una o más hojas de trabajo en un libro.

Método Sheets.Add

 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 código VBA para agregar una nueva hoja a un libro de trabajo

Abra el editor de Visual Basic y siga estos pasos.

  • Primero, debe ingresar el método Sheets.Add.
  • A continuación, debe definir dónde agregar la nueva hoja (Antes o Después).
  • Lo siguiente es ingresar el número de hojas de trabajo.
  • En definitiva, el tipo de hoja.
agregar-hojas-agregar-método-vba

Diferentes formas de agregar nuevas hojas en un libro usando código VBA

A continuación se muestran diferentes formas de agregar una nueva hoja a un libro de trabajo:

1. Añade una sola hoja

Para agregar una sola hoja, puede usar el código siguiente, donde no ha especificado 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 argumentos, usará los valores predeterminados y agregará una hoja de trabajo (xlWorksheet) antes de la hoja activa.

Aquí hay otra forma de escribir esto; consulte el código a continuación.

 Sub SheetAddExample2() Sheets.Add End Sub

Como ya está en el libro activo, también puede utilizar el siguiente código. Él hace lo mismo.

2. Agrega varias hojas

Para agregar varias hojas a la vez, simplemente configure el argumento CONTAR con la cantidad de hojas que desea agregar.

 Sub AddSheets3() Sheets.Add Count:=5 End Sub

Ahora la cantidad de hojas que configuró es 5, por lo que cuando ejecuta este código, agrega instantáneamente las cinco hojas nuevas al libro de trabajo.

3. Agrega 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 objeto de nombre ( ENLACE ) que le ayuda a especificar el nombre de una hoja.

4. Agrega una hoja con un nombre de una celda.

También puede tomar el valor para usarlo 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 usa para obtener el nombre de la nueva hoja.

5. Agregue una hoja después/antes 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.

 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 usó 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. Agrega una nueva hoja al principio.

Usando el argumento antes de usar, 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, utilizó 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 nueva hoja al final (después de la última hoja)

Para agregar una nueva hoja al final, debe escribir el código de otra manera. 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 número de hojas que tiene en el libro y, dado que configuró el argumento posterior, agrega la nueva hoja después de la última hoja del libro.

8. Agregue varias hojas y use nombres de rango

El siguiente código cuenta líneas en el rango A1:A7. Después de eso, realiza un bucle para agregar hojas según el recuento del rango y usa los valores del rango para nombrar la hoja al agregarla.

 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, es posible que el nombre de la hoja que deseas agregar ya exista o tengas una celda vacía en el rango de nombres.

En este caso, necesita 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á vacía o no.

Sólo si se cumplen ambas condiciones, se debe agregar una nueva hoja. Déjame decirlo en dos pasos:

En primer lugar , debe escribir una función definida por el usuario de Excel para verificar 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 este código también debe verificar si la celda del nombre está vacía 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 vacío.

Archivo de ejemplo

Añadir un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *