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:

  1. Innanzitutto, dichiara una variabile per fare riferimento a un foglio di lavoro per il ciclo.
    declare-a-variable-to-refer
  2. Successivamente, avvia il ciclo con la parola chiave “Per ciascuno” e fai riferimento a ciascun foglio di lavoro nella cartella di lavoro.
    start-the-loop-with-the-keyword
  3. Supponiamo ora di voler inserire un valore nella cella A1 di ciascun foglio di lavoro, puoi utilizzare il codice di scrittura come segue.
    want-to-enter-a-value-in-the-cell
  4. Alla fine, usa la parola chiave “End” per terminare il ciclo.
    use-the-keyword-end

Link utili: Esegui una macroRegistratore di macroVisual Basic EditorManuale 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:

  1. 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.
    declare-to-variable-to-write-count-value
  2. Ora imposta il valore della variabile “shtCount” equivalente al numero di fogli che hai nella cartella di lavoro.
    set-the-value-for-the-shtcount
  3. 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.
    start-the-code
  4. Da qui, devi utilizzare il contatore dei cicli per scorrere tutti i fogli e inserire il valore “Sì” nella cella A1 di ciascun foglio.
    use-the-loop-counter-to-loop

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

Aggiungi un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *