Come scorrere tutti i fogli utilizzando vba in excel?
Esistono due modi per esaminare tutti i fogli presenti in una cartella di lavoro.
- PER IL PROSSIMO CICLO
- PER OGNI RICCIO
1. Utilizzare per ciascun ciclo
Come sai, con FOR EACH puoi scorrere tutti gli oggetti nella raccolta e in una cartella di lavoro, i fogli di lavoro sono una raccolta di tutti i fogli di lavoro.
Utilizzare i seguenti passaggi:
- Innanzitutto, dichiara una variabile per fare riferimento a un foglio di lavoro per il ciclo.
- Successivamente, avvia il ciclo con la parola chiave “Per ciascuno” e fai riferimento a ciascun foglio di lavoro nella cartella di lavoro.
- Supponiamo ora di voler inserire un valore nella cella A1 di ciascun foglio di lavoro, puoi utilizzare il codice di scrittura come segue.
- Alla fine, usa la parola chiave “End” per terminare il ciclo.
Link utili: Esegui una macro – Registratore di macro – Visual Basic Editor – Manuale delle macro personali
Sub vba_loop_sheets() Dim ws As Worksheet For Each ws In ThisWorkbook.Worksheets ws.Range("A1").Value = "Yes" Next ws End Sub
Questo codice attraversa ogni foglio e inserisce il valore nella cella A1 di ogni foglio. Il vantaggio di utilizzare questo metodo è che attraversa tutti i fogli della cartella di lavoro.
E se desideri sfogliare tutti i fogli di lavoro in una cartella di lavoro chiusa, utilizza il codice come di seguito.
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. Utilizzare il ciclo For Next
Puoi anche eseguire il loop utilizzando il loop FOR NEXT , in cui puoi utilizzare il numero di fogli per decidere quanti loop eseguire e utilizzare il contatore del loop per fare riferimento a ciascun foglio.
Ecco i passaggi che devi seguire:
- Innanzitutto, devi dichiarare due variabili per memorizzare il valore di conteggio per il ciclo e una per il numero di fogli presenti nella cartella di lavoro.
- Ora imposta il valore della variabile “shtCount” equivalente al numero di fogli che hai nella cartella di lavoro.
- Successivamente, avvia il codice per il ciclo utilizzando la parola chiave “For i” e utilizza il conteggio delle foglie del valore massimo per il contatore del ciclo.
- Da qui, devi utilizzare il contatore dei cicli per scorrere tutti i fogli e inserire il valore “Sì” nella cella A1 di ciascun foglio.
Codice 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
E se vuoi sfogliare una cartella di lavoro chiusa, usa il seguente codice.
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