Цей підручник покаже вам, як використовувати функцію Excel COUNT у VBA
Функція VBA COUNT використовується для підрахунку кількості клітинок на вашому аркуші, у яких є значення. Доступ до нього здійснюється за допомогою методу WorksheetFunction у VBA.
COUNT Робочий аркуш
Об'єкт WorksheetFunction можна використовувати для виклику більшості функцій Excel, доступних у діалоговому вікні Вставка функції в Excel. Функція COUNT - одна з них.
123 | Sub TestCountFunctinoДіапазон ("D33") = Application.WorksheetFunction.Count (Діапазон ("D1: D32"))End Sub |
Ви можете мати до 30 аргументів у функції COUNT. Кожен з аргументів повинен посилатися на діапазон клітинок.
У цьому прикладі нижче буде підраховано, скільки клітинок заповнено значеннями у клітинках D1 - D9
123 | Sub TestCount ()Діапазон ("D10") = Application.WorksheetFunction.Count (Діапазон ("D1: D9"))End Sub |
У наведеному нижче прикладі буде підраховано, скільки значень є в діапазоні у стовпці D і в діапазоні у стовпці F. Якщо ви не введете об’єкт Application, це буде прийнято.
123 | Sub TestCountMultiple ()Діапазон ("G8") = Робочий лист Функція.Кількість (Діапазон ("G2: G7"), Діапазон ("H2: H7"))End Sub |
Присвоєння результату Count змінної
Можливо, ви захочете використати результат своєї формули в іншому місці коду, а не писати його безпосередньо в діапазон Excel. Якщо це так, ви можете призначити результат змінній для використання пізніше у вашому коді.
1234567 | Sub AssignCount ()Результат затемнення як ціле число'Призначте зміннуresult = WorksheetFunction.Count (Діапазон ("H2: H11"))'Покажіть результатMsgBox "Кількість клітинок, заповнених значеннями", & результатEnd Sub |
COUNT з об'єктом діапазону
Ви можете призначити групу клітинок об'єкту Range, а потім використовувати цей об'єкт Range разом із Робочий лист Функція об'єкт.
123456789 | Sub TestCountRange ()Зменшити діапазон як діапазон'призначити діапазон клітинокВстановити rng = Діапазон ("G2: G7")'використовуйте діапазон у формуліДіапазон ("G8") = Функція робочого аркуша.Кунт (rng)'випустіть об'єкт діапазонуВстановити rng = нічогоEnd Sub |
КОЛИЧЕСТВО кількох об'єктів діапазону
Аналогічно можна підрахувати, скільки клітинок заповнено значеннями в кількох об’єктах діапазону.
123456789101112 | Sub TestCountMultipleRanges ()Dim rngA As RangeDim rngB як діапазон'призначити діапазон клітинокВстановити rngA = Діапазон ("D2: D10")Встановити rngB = Діапазон ("E2: E10")'використовуйте діапазон у формуліДіапазон ("E11") = Робочий лист Функція.Кількість (rngA, rngB)'випустіть об'єкт діапазонуВстановити rngA = НічогоВстановити rngB = нічогоEnd Sub |
Використання COUNTA
Підрахунок буде підраховувати лише ЦІННІСТЬ у клітинках, він не буде підраховувати клітинку, якщо в клітинці є текст. Щоб підрахувати клітинки, заповнені будь -якими даними, нам потрібно буде скористатися функцією COUNTA.
123 | Sub TestCountA ()Діапазон ("B8) = Application.WorksheetFunction.CountA (Діапазон (" B1: B6 "))End Sub |
У наведеному нижче прикладі функція COUNT повертає нуль, оскільки у стовпці B немає значень, тоді як вона повертає 4 для стовпця C. Однак функція COUNTA буде підраховувати клітинки з текстом і повертатиме значення 5 у стовпці B, повертаючи значення 4 у стовпці C.
Використання COUNTBLANKS
Функція COUNTBLANKS буде підраховувати лише порожні клітинки в діапазоні клітинок - тобто клітинки, у яких взагалі немає даних.
123 | Sub TestCountBlank ()Діапазон ("B8) = Application.WorksheetFunction.CountBlanks (Діапазон (" B1: B6 "))End Sub |
У наведеному нижче прикладі стовпець B не має порожніх клітинок, тоді як стовпець C має одну порожню клітинку.
Використання функції COUNTIF
Іншою функцією робочого аркуша, яку можна використовувати, є функція COUNTIF.
123456 | Sub TestCountIf ()Діапазон ("H14") = Робочий лист Функція.CountIf (Діапазон ("H2: H10"), "> 0")Діапазон ("H15") = Робочий лист Функція.CountIf (Діапазон ("H2: H10"), "> 100")Діапазон ("H16") = Робочий лист Функція.CountIf (Діапазон ("H2: H10"), "> 1000")Діапазон ("H17") = Робочий лист Функція.CountIf (Діапазон ("H2: H10"), "> 10000")End Sub |
Наведена вище процедура зараховуватиме клітинки зі значеннями, якщо відповідні критерії - більше 0, більше 100, більше 1000 і більше 10000. Щоб формула працювала правильно, потрібно поставити критерії в лапки.
Недоліки роботи аркуша
Коли ви використовуєте Робочий лист Функція для підрахунку значень у діапазоні на вашому аркуші повертається статичне значення, а не гнучка формула. Це означає, що коли ваші цифри в Excel змінюються, значення, яке було повернуто Робочий лист Функція не зміниться.
У наведеному вище прикладі процедура TestCount підрахувала клітинки у стовпці Н, де є значення. Як ви можете бачити на панелі формул, цей результат є цифрою, а не формулою.
Якщо в діапазоні (H2: H12) будь -яке значення змінюється, результати в H14 будуть НІ зміна.
Замість того, щоб використовувати Робочий лист Функція.Кількість, ви можете використовувати VBA, щоб застосувати функцію підрахунку до клітинки за допомогою Формула або Формула R1C1 методи.
Використання методу формули
Метод формули дозволяє конкретно вказати на діапазон клітинок, наприклад: H2: H12, як показано нижче.
123 | Sub TestCountFormulaДіапазон ("H14"). Формула = "= Кількість (H2: H12)"End Sub |
Використання методу FormulaR1C1
Метод FromulaR1C1 є більш гнучким, оскільки не обмежує вас певним діапазоном клітинок. Наведений нижче приклад дасть нам таку ж відповідь, як і наведений вище.
123 | Sub TestCountFormula ()Діапазон ("H14"). Формула = "= Кількість (R [-9] C: R [-1] C)"End Sub |
Однак, щоб зробити формулу більш гнучкою, ми могли б змінити код так:
123 | Sub TestCountFormula ()ActiveCell.FormulaR1C1 = "= Кількість (R [-11] C: R [-1] C)"End Sub |
Де б ви не були на своєму робочому аркуші, формула підраховує значення у 12 клітинках безпосередньо над нею та розміщує відповідь у вашій ActiveCell. Діапазон усередині функції COUNT слід посилати за допомогою синтаксису рядка (R) та стовпця (C).
Обидва ці методи дозволяють використовувати формули динамічного Excel у VBA.
Тепер замість значення у H14 буде формула.