ВБА ЦОУНТ

Овај водич ће вам показати како да користите функцију Екцел ЦОУНТ у ВБА

Функција ВБА ЦОУНТ се користи за пребројавање броја ћелија на вашем радном листу које имају вредности. Приступа се методом ВорксхеетФунцтион у ВБА.

ЦОУНТ радни лист

Објекат ВорксхеетФунцтион се може користити за позивање већине Екцел функција које су доступне у оквиру за дијалог Инсерт Фунцтион у Екцелу. Функција ЦОУНТ је једна од њих.

123 Суб ТестЦоунтФунцтиноОпсег ("Д33") = Апплицатион.ВорксхеетФунцтион.Цоунт (Опсег ("Д1: Д32"))Енд Суб

Можете да имате до 30 аргумената у функцији ЦОУНТ. Сваки од аргумената мора се односити на низ ћелија.

Овај доњи пример бројиће колико је ћелија попуњено вредностима у ћелијама Д1 до Д9

123 Под ТестЦоунт ()Опсег ("Д10") = Апплицатион.ВорксхеетФунцтион.Цоунт (Опсег ("Д1: Д9"))Енд Суб

Пример испод ће бројати колико је вредности у опсегу у колони Д и у опсегу у колони Ф. Ако не откуцате објекат Апплицатион, то ће се претпоставити.

123 Под ТестЦоунтМултипле ()Опсег ("Г8") = Функција радног листа.Цоунт (Опсег ("Г2: Г7"), Опсег ("Х2: Х7"))Енд Суб

Додела резултата Цоунт променљивој

Можда ћете желети да користите резултат своје формуле на другом месту у коду уместо да га записујете директно у Екцел опсег. У том случају резултат можете доделити променљивој која ће се касније користити у коду.

1234567 Суб АссигнЦоунт ()Затамните резултат као цео број'Доделите променљивуресулт = ВорксхеетФунцтион.Цоунт (Распон ("Х2: Х11"))'Покажи резултатМсгБок "Број ћелија попуњених вредностима је" & резултатЕнд Суб

ЦОУНТ са објектом опсега

Објекту Ранге можете доделити групу ћелија, а затим користити тај објекат Ранге са ВорксхеетФунцтион објекат.

123456789 Суб ТестЦоунтРанге ()Дим рнг Ас Ранге'доделите опсег ћелијаСет рнг = Ранге ("Г2: Г7")'користите опсег у формулиОпсег ("Г8") = Функција радног листа.Цоунт (рнг)'отпустите објекат опсегаСет рнг = НиштаЕнд Суб

ЦОУНТ Објекти вишеструког опсега

Слично, можете избројати колико је ћелија попуњено вредностима у више објеката опсега.

123456789101112 Под ТестЦоунтМултиплеРангес ()Дим рнгА Ас РангеДим рнгБ ас Ранге'доделите опсег ћелијаПодеси рнгА = Опсег ("Д2: Д10")Подесите рнгБ = Опсег ("Е2: Е10")'користите опсег у формулиОпсег ("Е11") = Функција радног листа.Конт (рнгА, рнгБ)'отпустите објекат опсегаПоставите рнгА = НиштаПоставите рнгБ = НиштаЕнд Суб

Коришћење ЦОУНТА

Бројање ће бројати само ВРЕДНОСТИ у ћелијама, неће бројати ћелију ако ћелија садржи текст. Да бисмо пребројали ћелије које су попуњене било којом врстом података, морали бисмо да користимо функцију ЦОУНТА.

123 Суб ТестЦоунтА ()Опсег ("Б8) = Апплицатион.ВорксхеетФунцтион.ЦоунтА (Опсег (" Б1: Б6 "))Енд Суб

У доњем примеру, функција ЦОУНТ би вратила нулу јер нема вредности у колони Б, док би вратила 4 за колону Ц. Међутим, функција ЦОУНТА би бројала ћелије са текстом и вратила би вредност 5 у колони Б док још увек враћа вредност 4 у колони Ц.

Коришћење ЦОУНТБЛАНКС

Функција ЦОУНТБЛАНКС ће бројати само празне ћелије у опсегу ћелија - тј. Ћелије које уопште немају податке.

123 Суб ТестЦоунтБланк ()Опсег ("Б8) = Апплицатион.ВорксхеетФунцтион.ЦоунтБланкс (Опсег (" Б1: Б6 "))Енд Суб

У доњем примеру колона Б нема празних ћелија, док колона Ц има једну празну ћелију.

Коришћење функције ЦОУНТИФ

Још једна функција радног листа која се може користити је функција ЦОУНТИФ.

123456 Суб ТестЦоунтИф ()Опсег ("Х14") = Функција радног листа.ЦоунтИф (Опсег ("Х2: Х10"), "> 0")Опсег ("Х15") = Функција радног листа.ЦоунтИф (Опсег ("Х2: Х10"), "> 100")Опсег ("Х16") = Функција радног листа.ЦоунтИф (Опсег ("Х2: Х10"), "> 1000")Опсег ("Х17") = Функција радног листа.ЦоунтИф (Опсег ("Х2: Х10"), "> 10000")Енд Суб

Горња процедура ће бројати ћелије са вредностима у њима само ако се критеријуми подударају - већи од 0, већи од 100, већи од 1000 и већи од 10000. Морате ставити критеријуме у наводнике да би формула исправно радила.

Недостаци функције радног листа

Када користите ВорксхеетФунцтион за бројање вредности у опсегу на вашем радном листу, враћа се статичка вредност, а не флексибилна формула. То значи да када се ваше бројке у Екцелу промене, вредност коју је вратио ВорксхеетФунцтион неће се променити.

У горњем примеру, поступак ТестЦоунт је избројао ћелије у колони Х где је присутна вредност. Као што можете видети на траци са формулама, овај резултат је бројка, а не формула.

Ако се нека вредност промени у опсегу (Х2: Х12), резултати у Х14 ће се променити НЕ промена.

Уместо да користите ВорксхеетФунцтион.Цоунт, можете користити ВБА да бисте применили функцију бројања на ћелију помоћу Формула или ФормулаР1Ц1 методе.

Коришћењем методе формуле

Метода формуле вам омогућава да посебно покажете на низ ћелија, на пример: Х2: Х12 као што је приказано испод.

123 Под ТестЦоунтФормулаОпсег ("Х14"). Формула = "= Број (Х2: Х12)"Енд Суб

Употребом методе ФормулаР1Ц1

Метода ФромулаР1Ц1 је флексибилнија по томе што вас не ограничава на задати опсег ћелија. Следећи пример ће нам дати исти одговор као и претходни.

123 Под ТестЦоунтФормула ()Опсег ("Х14"). Формула = "= Број (Р [-9] Ц: Р [-1] Ц)"Енд Суб

Међутим, како бисмо формулу учинили флексибилнијом, могли бисмо изменити код да изгледа овако:

123 Под ТестЦоунтФормула ()АцтивеЦелл.ФормулаР1Ц1 = "= Број (Р [-11] Ц: Р [-1] Ц)"Енд Суб

Где год да се налазите на свом радном листу, формула ће затим пребројати вредности у 12 ћелија непосредно изнад ње и поставити одговор у вашу АцтивеЦелл. Распон унутар функције ЦОУНТ мора се позвати користећи синтаксу Ред (Р) и Колона (Ц).

Обе ове методе омогућавају вам да користите динамичке Екцел формуле у оквиру ВБА.

У Х14 ће сада уместо вредности бити формула.

Ви ће помоћи развој сајта, дељење страницу са пријатељима

wave wave wave wave wave