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

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *