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

Додати коментар

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *