Vba: come contare il numero di fogli in una cartella di lavoro


È possibile utilizzare i seguenti metodi per contare il numero di fogli in una cartella di lavoro in Excel:

Metodo 1: contare il numero di fogli nella cartella di lavoro attiva

 SubCountSheetsActive ()
   Range(" A1 ") = ThisWorkbook.Worksheets.Count
End Sub

Metodo 2: contare il numero di fogli in una cartella di lavoro aperta

 SubCountSheetsOpen ()
    Range(" A1 ") = Workbooks(" my_data.xlsx ").Sheets.Count
End Sub

Metodo 3: contare il numero di fogli in un raccoglitore chiuso

 SubCountSheetsClosed ()
    Application.DisplayAlerts = False
    Set wb = Workbooks.Open(" C:\Users\Bob\Desktop\my_data.xlsx ")
    
    'count sheets in closed workbook and display count in cell A1 of current workbook
    ThisWorkbook.Sheets(1).Range(" A1 ").Value = wb.Sheets.Count

    wb.Close SaveChanges:=True
    Application.DisplayAlerts = True
End Sub

Gli esempi seguenti mostrano come utilizzare nella pratica ciascuno di questi metodi.

Esempio 1: contare il numero di fogli in una cartella di lavoro attiva

Diciamo che abbiamo la seguente cartella di lavoro di Excel aperta e la stiamo visualizzando:

Possiamo utilizzare la seguente macro per contare il numero totale di fogli in questa cartella di lavoro e visualizzare il numero nella cella A1:

 SubCountSheetsActive ()
   Range(" A1 ") = ThisWorkbook.Worksheets.Count
End Sub

Quando eseguiamo questa macro, riceviamo il seguente output:

Nota che la cella A1 contiene il valore 6 .

Questo ci dice che ci sono 6 fogli in questa cartella di lavoro.

Esempio 2: contare il numero di fogli in un raccoglitore aperto

Supponiamo di avere una cartella di lavoro di Excel denominata my_data.xlsx con due fogli aperti ma al momento non la stiamo visualizzando.

Possiamo utilizzare la seguente macro per contare il numero totale di fogli in questa cartella di lavoro e visualizzare il numero nella cella A1 della cartella di lavoro attiva:

 SubCountSheetsOpen ()
    Range(" A1 ") = Workbooks(" my_data.xlsx ").Sheets.Count
End Sub

Quando eseguiamo questa macro, riceviamo il seguente output:

Nota che la cella A1 contiene il valore 2 .

Questo ci dice che ci sono 2 fogli nella cartella di lavoro aperta chiamati my_data.xlsx .

Esempio 3: conteggio del numero di fogli in un raccoglitore chiuso

Supponiamo di avere una cartella di lavoro di Excel denominata my_data.xlsx con due fogli che non sono attualmente aperti ma che si trovano nel seguente percorso di file:

C:\Users\Bob\Desktop\my_data.xlsx

Possiamo utilizzare la seguente macro per contare il numero totale di fogli in questa cartella di lavoro e visualizzare il numero nella cella A1 del primo foglio della cartella di lavoro attiva:

 SubCountSheetsClosed ()
    Application.DisplayAlerts = False
    Set wb = Workbooks.Open(" C:\Users\Bob\Desktop\my_data.xlsx ")
    
    'count sheets in closed workbook and display count in cell A1 of current workbook
    ThisWorkbook.Sheets(1).Range(" A1 ").Value = wb.Sheets.Count

    wb.Close SaveChanges:=True
    Application.DisplayAlerts = True
End Sub

Quando eseguiamo questa macro, riceviamo il seguente output:

Nota che la cella A1 contiene il valore 2 .

Questo ci dice che ci sono 2 fogli nella cartella di lavoro chiusa chiamati my_data.xlsx .

Nota : nel codice Application.DisplayAlerts=False indica a VBA di non visualizzare il processo di apertura della cartella di lavoro chiusa, conteggio dei fogli e quindi chiusura della cartella di lavoro.

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 *