Як використовувати функцію проміжних підсумків у vba (з прикладами)
Ви можете використовувати функцію SUBTOTAL в Excel, щоб обчислити загальну статистику лише для видимих клітинок на аркуші.
Для використання функції SUBTOTAL у VBA можна використовувати такий базовий синтаксис:
Sub FindSubtotal()
Range(" A16 ") = WorksheetFunction.Subtotal(9, Range(" B2:B11 "))
End Sub
У цьому конкретному прикладі обчислюється сума значень у видимих клітинках у діапазоні B2:B11 і відображається результат у клітинці A16 .
Зауважте, що перший аргумент методу Subtotal визначає метод агрегування, який слід використовувати, де:
- 1 : СЕРЕДНІЙ
- 2 : РАХУНОК
- 3 : РАХУНОК
- 4 : МАКСИМУМ
- 5 : МІНІМУМ
- 6 : ПРОДУКТ
- 7 : STDEV
- 8 : STDEVP
- 9 : СУМА
- 10 : VAR
- 11 : VARP
У наступному прикладі показано, як на практиці використовувати метод Subtotal у VBA.
Приклад: як використовувати проміжний підсумок у VBA
Припустімо, у нас є такий набір даних у Excel, який містить інформацію про різних баскетболістів:
Тепер припустімо, що ми застосуємо фільтр, щоб показати лише ті рядки, де команда дорівнює A або C:
Ми можемо створити наступний макрос для обчислення суми видимих комірок у стовпці точок і відображення результатів у комірці A16 :
Sub FindSubtotal()
Range(" A16 ") = WorksheetFunction.Subtotal(9, Range(" B2:B11 "))
End Sub
Коли ми запускаємо цей макрос, ми отримуємо такий результат:
Зверніть увагу, що клітинка A16 містить значення 168 .
Це говорить нам про те, що сума клітинок, видимих у стовпці балів, дорівнює 168.
Ми також можемо змінити значення першого аргументу методу Subtotal , щоб обчислити інший показник.
Наприклад, замість цього ми можемо використати значення 1 , щоб обчислити середнє значення видимих клітинок у стовпці балів:
Sub FindSubtotal()
Range(" A16 ") = WorksheetFunction.Subtotal(1, Range(" B2:B11 "))
End Sub
Коли ми запускаємо цей макрос, ми отримуємо такий результат:
Зверніть увагу, що клітинка A16 містить значення 24 .
Це говорить нам про те, що середнє значення клітинок, видимих у стовпці балів, становить 24.
Примітка . Ви можете знайти повну документацію для методу VBA Subtotal тут .
Додаткові ресурси
У наступних посібниках пояснюється, як виконувати інші типові завдання у VBA:
VBA: Як додати значення в діапазон
VBA: як обчислити середнє значення діапазону
VBA: як підрахувати кількість рядків у діапазоні