Vba: как посчитать количество листов в книге


Для подсчета количества листов в книге Excel можно использовать следующие методы:

Способ 1. Подсчитайте количество листов в активной книге.

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

Способ 2: подсчитать количество листов в открытой книге

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

Способ 3: подсчитайте количество листов в закрытой папке

 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

Следующие примеры показывают, как использовать каждый из этих методов на практике.

Пример 1. Подсчет количества листов в активной книге.

Допустим, у нас открыта следующая книга Excel, и мы просматриваем ее:

Мы можем использовать следующий макрос, чтобы подсчитать общее количество листов в этой книге и отобразить число в ячейке A1:

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

Когда мы запускаем этот макрос, мы получаем следующий вывод:

Обратите внимание, что ячейка A1 содержит значение 6 .

Это говорит нам о том, что в этой книге 6 листов.

Пример 2. Подсчитайте количество листов в открытой подшивке.

Допустим, у нас есть книга Excel под названием my_data.xlsx с двумя открытыми листами, но в данный момент мы ее не просматриваем.

Мы можем использовать следующий макрос, чтобы подсчитать общее количество листов в этой книге и отобразить число в ячейке A1 активной книги:

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

Когда мы запускаем этот макрос, мы получаем следующий вывод:

Обратите внимание, что ячейка A1 содержит значение 2 .

Это говорит нам о том, что в открытой книге есть 2 листа с именем my_data.xlsx .

Пример 3: Подсчет количества листов в закрытой подшивке

Допустим, у нас есть книга Excel с именем my_data.xlsx с двумя листами, которые в данный момент не открыты, но расположены в следующем расположении файла:

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

Мы можем использовать следующий макрос, чтобы подсчитать общее количество листов в этой книге и отобразить число в ячейке A1 первого листа активной книги:

 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

Когда мы запускаем этот макрос, мы получаем следующий вывод:

Обратите внимание, что ячейка A1 содержит значение 2 .

Это говорит нам о том, что в закрытой книге есть 2 листа с именем my_data.xlsx .

Примечание . В коде Application.DisplayAlerts=False сообщает VBA не отображать процесс открытия закрытой книги, подсчета листов и последующего закрытия книги.

Дополнительные ресурсы

В следующих руководствах объясняется, как выполнять другие распространенные задачи в VBA:

VBA: как подсчитать количество строк в диапазоне
VBA: как подсчитать ячейки с определенным текстом
VBA: как писать функции COUNTIF и COUNTIFS

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *