Vba: jak policzyć liczbę arkuszy w skoroszycie
Aby policzyć liczbę arkuszy w skoroszycie w programie Excel, możesz użyć następujących metod:
Metoda 1: Policz liczbę arkuszy w aktywnym skoroszycie
SubCountSheetsActive ()
Range(" A1 ") = ThisWorkbook.Worksheets.Count
End Sub
Metoda 2: policz liczbę arkuszy w otwartym skoroszycie
SubCountSheetsOpen ()
Range(" A1 ") = Workbooks(" my_data.xlsx ").Sheets.Count
End Sub
Metoda 3: policz liczbę kartek w zamkniętym segregatorze
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
Poniższe przykłady pokazują, jak zastosować każdą z tych metod w praktyce.
Przykład 1: Policz liczbę arkuszy w aktywnym skoroszycie
Załóżmy, że mamy otwarty następujący skoroszyt programu Excel i go przeglądamy:
Możemy użyć poniższego makra, aby policzyć całkowitą liczbę arkuszy w tym skoroszycie i wyświetlić liczbę w komórce A1:
SubCountSheetsActive ()
Range(" A1 ") = ThisWorkbook.Worksheets.Count
End Sub
Kiedy uruchomimy to makro, otrzymamy następujące dane wyjściowe:
Zauważ, że komórka A1 zawiera wartość 6 .
Oznacza to, że w tym skoroszycie znajduje się 6 arkuszy.
Przykład 2: Policz liczbę kartek w otwartym segregatorze
Załóżmy, że mamy skoroszyt programu Excel o nazwie moje_dane.xlsx z otwartymi dwoma arkuszami, ale obecnie go nie przeglądamy.
Możemy użyć poniższego makra, aby policzyć całkowitą liczbę arkuszy w tym skoroszycie i wyświetlić liczbę w komórce A1 aktywnego skoroszytu:
SubCountSheetsOpen ()
Range(" A1 ") = Workbooks(" my_data.xlsx ").Sheets.Count
End Sub
Kiedy uruchomimy to makro, otrzymamy następujące dane wyjściowe:
Zauważ, że komórka A1 zawiera wartość 2 .
To mówi nam, że w otwartym skoroszycie znajdują się 2 arkusze o nazwie my_data.xlsx .
Przykład 3: Liczenie kartek w zamkniętym segregatorze
Załóżmy, że mamy skoroszyt programu Excel o nazwie moje_dane.xlsx z dwoma arkuszami, które nie są obecnie otwarte, ale znajdują się w następującej lokalizacji pliku:
C:\Users\Bob\Desktop\moje_dane.xlsx
Możemy użyć poniższego makra, aby policzyć całkowitą liczbę arkuszy w tym skoroszycie i wyświetlić liczbę w komórce A1 pierwszego arkusza aktywnego skoroszytu:
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
Kiedy uruchomimy to makro, otrzymamy następujące dane wyjściowe:
Zauważ, że komórka A1 zawiera wartość 2 .
To mówi nam, że w zamkniętym skoroszycie znajdują się 2 arkusze o nazwie my_data.xlsx .
Uwaga : w kodzie Application.DisplayAlerts=False informuje VBA, aby nie wyświetlał procesu otwierania zamkniętego skoroszytu, liczenia arkuszy, a następnie zamykania skoroszytu.
Dodatkowe zasoby
Poniższe samouczki wyjaśniają, jak wykonywać inne typowe zadania w VBA:
VBA: Jak policzyć liczbę wierszy w zakresie
VBA: Jak liczyć komórki zawierające określony tekst
VBA: Jak pisać funkcje COUNTIFS i COUNTIFS