¿cómo recorrer todas las hojas usando vba en excel?
Hay dos formas de revisar todas las hojas que tiene en un libro de trabajo.
- PARA EL PRÓXIMO BUCLE
- PARA CADA rizo
1. Usar para cada bucle
Como sabes, con FOR EACH puedes iterar sobre todos los objetos de la colección y en un libro de trabajo, las hojas de trabajo son una colección de todas las hojas de trabajo.
Utilice los siguientes pasos:
- Primero, declare una variable para hacer referencia a una hoja de trabajo para el bucle.
- Después de eso, inicie el ciclo con la palabra clave «Para cada» y consulte cada hoja de trabajo del libro.
- Ahora suponga que desea ingresar un valor en la celda A1 de cada hoja de trabajo, puede usar el código de escritura de la siguiente manera.
- Al final, utilice la palabra clave «Fin» para finalizar el ciclo.
Enlaces útiles: Ejecutar una macro – Grabador de macros – Editor de Visual Basic – Manual de macros personales
Sub vba_loop_sheets() Dim ws As Worksheet For Each ws In ThisWorkbook.Worksheets ws.Range("A1").Value = "Yes" Next ws End Sub
Este código recorre cada hoja e ingresa el valor en la celda A1 de cada hoja. La ventaja de utilizar este método es que recorre todas las hojas del libro.
Y si desea explorar todas las hojas de trabajo en un libro cerrado, use el código que se muestra a continuación.
Sub vba_loop_sheets() Dim wb As Workbook Dim ws As Worksheet Application.DisplayAlerts = False Set wb = Workbooks.Open("C:UsersDellDesktopsample-file.xlsx") For Each ws In wb.Worksheets ws.Range("A1").Value = "Done" Next ws wb.Close SaveChanges:=True Application.DisplayAlerts = True End Sub
2. Utilice el bucle Para el siguiente
También puede realizar un bucle usando el bucle FOR NEXT , donde puede usar el número de hojas para decidir cuántos bucles hacer y usar el contador de bucles para consultar cada hoja.
Estos son los pasos que debes seguir:
- Primero, debe declarar dos variables para almacenar el valor de recuento del bucle y una para la cantidad de hojas que tiene en el libro.
- Ahora, establezca el valor de la variable “shtCount” equivalente al número de hojas que tiene en el libro.
- Después de eso, inicie el código para el bucle usando la palabra clave «For i» y use el recuento de hojas del valor máximo para el contador del bucle.
- Desde aquí, debes usar el contador de bucles para revisar todas las hojas e ingresar el valor «Sí» en la celda A1 de cada hoja.
código completo
Sub vba_loop_sheets() Dim i As Long Dim shtCount As Long shtCount = Sheets.Count For i = 1 To shtCount Sheets(i).Range("A1").Value = "Yes" Next i End Sub
Y si desea explorar un libro cerrado, utilice el siguiente código.
Sub vba_loop_sheets() Dim i As Long Dim shtCount As Long Set wb = Workbooks.Open("C:UsersDellDesktopsample-file.xlsx") shtCount = wb.Sheets.Count Application.DisplayAlerts = False For i = 1 To shtCount wb.Sheets(i).Range("A1").Value = "Yes" Next i wb.Close SaveChanges:=True Application.DisplayAlerts = True End Sub