ВЧИСЛЕННЯ VBA

Цей підручник покаже вам, як використовувати функцію 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 буде формула.

Ви допоможете розвитку сайту, поділившись сторінкою з друзями

wave wave wave wave wave