Come sfogliare i fogli di calcolo in vba (con esempi)


È possibile utilizzare i seguenti metodi per spostarsi tra i fogli di una cartella di lavoro di Excel utilizzando VBA:

Metodo 1: esamina tutti i fogli di calcolo

 SubLoopSheets ()

Dim ws As Worksheet

For Each ws In ThisWorkbook.Worksheets

    ws.Range("A1").Value = 100

Next ws

End Sub

Questa particolare macro esamina ogni foglio di una cartella di lavoro e imposta il valore nella cella A1 di ciascun foglio su 100.

Metodo 2: sfoglia tutti i fogli di lavoro, esclusi quelli specifici

 SubLoopSheets ()

Dim ws As Worksheet

For Each ws In ThisWorkbook.Worksheets

    Select Case ws.Name
        Case Is = "Sheet2", "Sheet3"
        'Do not execute any code for these sheets
        Case Else
        ws.Range("A1").Value = 100
    End Select

Next ws

End Sub

Questa particolare macro scorre ogni foglio di una cartella di lavoro e imposta il valore nella cella A1 di ogni foglio su 100, ad eccezione dei fogli chiamati Sheet2 e Sheet3 .

Gli esempi seguenti mostrano come utilizzare nella pratica ciascuno di questi metodi con una cartella di lavoro Excel contenente quattro fogli vuoti:

Esempio 1: sfoglia tutti i fogli di lavoro

Possiamo utilizzare la seguente macro per impostare il valore della cella A1 su ciascun foglio della nostra cartella di lavoro in modo che sia uguale a 100:

 SubLoopSheets ()

Dim ws As Worksheet

For Each ws In ThisWorkbook.Worksheets

    ws.Range("A1").Value = 100

Next ws

Quando eseguiamo questa macro, il valore della cella A1 in ogni foglio della cartella di lavoro sarà uguale a 100:

Esempio 2: sfoglia tutti i fogli di lavoro, esclusi quelli specifici

Diciamo che vogliamo esaminare ogni foglio di lavoro e impostare il valore della cella A1 in ogni foglio su 100, ad eccezione dei fogli chiamati Sheet2 e Sheet3 .

Per fare ciò possiamo creare la seguente macro:

 SubLoopSheets ()

Dim ws As Worksheet

For Each ws In ThisWorkbook.Worksheets

    Select Case ws.Name
        Case Is = "Sheet2", "Sheet3"
        'Do not execute any code for these sheets
        Case Else
        ws.Range("A1").Value = 100
    End Select

Next ws

End Sub

Quando eseguiamo questa macro, vedremo che Foglio1 e Foglio4 hanno un valore pari a 100 nella cella A1 .

Tuttavia, Foglio2 e Foglio3 non avranno alcun valore nella cella A1 poiché abbiamo utilizzato la funzione Case per ignorare questi fogli:

Tieni presente che in questi esempi abbiamo esaminato ogni foglio di lavoro e impostato il valore di una cella uguale a un valore specifico, solo per semplicità.

Tuttavia, se lo desideri, puoi utilizzare una sintassi simile con un’istruzione For Each per eseguire attività molto più complicate in ciascun foglio.

Risorse addizionali

I seguenti tutorial spiegano come eseguire altre attività comuni in VBA:

VBA: come contare il numero di righe nell’intervallo
VBA: come contare le celle con testo specifico
VBA: come scrivere le funzioni COUNTIF e COUNTIFS

Aggiungi un commento

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