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