Овај водич ће вам показати како да користите Екцел ЦОУНТИФ и ЦОУНТИФС функције у ВБА
ВБА нема еквивалент ЦОУНТИФ или ЦОУНТИФС функција које можете да користите - корисник мора да користи уграђене Екцел функције у ВБА користећи ВоркСхеетФунцтион објекат.
ЦОУНТИФФункција радног листа
Објекат ВорксхеетФунцтион се може користити за позивање већине Екцел функција које су доступне у оквиру за дијалог Инсерт Фунцтион у Екцелу. Функција ЦОУНТИФ је једна од њих.
123 | Суб ТестЦоунтИф ()Опсег ("Д10") = Апплицатион.ВорксхеетФунцтион.ЦоунтИф (Опсег ("Д2: Д9"), "> 5")Енд Суб |
Горе наведени поступак ће бројати ћелије у опсегу (Д2: Д9) само ако имају вредност 5 или већу. Имајте на уму да, јер користите знак већи од, критеријуми већи од 5 морају бити унутар заграда.
Додељивање ЦОУНТИФ резултата променљивој
Можда ћете желети да користите резултат своје формуле на другом месту у коду уместо да га записујете директно у Екцел опсег. У том случају резултат можете доделити променљивој која ће се касније користити у коду.
1234567 | Суб АссигнСумИфВариабле ()Затамните резултат као двоструки'Доделите променљивуресулт = Апплицатион.ВорксхеетФунцтион.ЦоунтИф (Опсег ("Д2: Д9"), "> 5")'Покажи резултатМсгБок "Број ћелија са вредношћу већом од 5 је" & резултатЕнд Суб |
Коришћење ЦОУНТИФС
Функција ЦОУНТИФС је слична функцији ЦОУНТИФ ВорксхеетФунцтион, али вам омогућава да проверите више критеријума. У доњем примеру, формула ће бројати број ћелија у Д2 до Д9 где је продајна цена већа од 6, а цена коштања већа од 5.
123 | Суб УсингЦоунтИфс ()Опсег ("Д10") = Функција радног листа.ЦоунтИфс (Опсег ("Ц2: Ц9"), "> 6", Опсег ("Е2: Е9"), "> 5")Енд Суб |
Коришћење ЦОУНТИФ -а са објектом опсега
Објекту Ранге можете доделити групу ћелија, а затим користити тај објекат Ранге са ВорксхеетФунцтион објекат.
123456789 | Под ТестЦоунтИФРанге ()Затамните рнгЦоунт ас Ранге'доделите опсег ћелијаПодеси рнгЦоунт = Опсег ("Д2: Д9")'користите опсег у формулиОпсег ("Д10") = Функција радног листа.СУМИФ (рнгЦоунт, "> 5")'отпустите објекте опсегаПоставите рнгЦоунт = НиштаЕнд Суб |
Коришћење ЦОУНТИФС на објектима више опсега
Слично, можете користити ЦОУНТИФС на више објеката распона.
123456789101112 | Под ТестЦоунтМултиплеРангес ()Дим рнгЦритериа1 Ас РангеДим рнгЦритериа2 ас Ранге'доделите опсег ћелијаПодеси рнгЦритериа1 = Опсег ("Д2: Д9")Подеси рнгЦритериа2 = Распон ("Е2: Е10")'користите опсеге у формулиОпсег ("Д10") = Функција радног листа.ЦоунтИфс (рнгЦритериа1, "> 6", рнгЦритериа2, "> 5")'отпустите објекте опсегаПоставите рнгЦритериа1 = НиштаПоставите рнгЦритериа2 = НиштаЕнд Суб |
ЦОУНТИФ Формула
Када користите ВорксхеетФунцтион.ЦОУНТИФ да бисте додали збир опсегу на радном листу, враћа се статичка вредност, а не флексибилна формула. То значи да када се ваше бројке у Екцелу промене, вредност коју је вратио ВорксхеетФунцтион неће се променити.
У горњем примеру, поступак је избројао количину ћелија са вредностима у опсегу (Д2: Д9) где је продајна цена већа од 6, а резултат је стављен у Д10. Као што можете видети на траци са формулама, овај резултат је бројка, а не формула.
Ако се било која од вредности промени у опсегу (Д2: Д9), резултат у Д10 ће бити НЕ промена.
Уместо да користите ВорксхеетФунцтион.СумИф, можете користити ВБА за примену функције СУМИФ на ћелију помоћу Формула или ФормулаР1Ц1 методе.
Метода формуле
Метода формуле вам омогућава да посебно покажете на низ ћелија, на пример: Д2: Д9 као што је приказано испод.
123 | Суб ТестЦоунтИф ()Опсег ("Д10"). ФормулаР1Ц1 = "= ЦОУНТИФ (Д2: Д9," "> 5" ")"Енд Суб |
ФормулаР1Ц1 Метода
Метода ФормулаР1Ц1 је флексибилнија по томе што вас не ограничава на задати опсег ћелија. Следећи пример ће нам дати исти одговор као и претходни.
123 | Суб ТестЦоунтИф ()Опсег ("Д10"). Формула Р1Ц1 = "= ЦОУНТИФ (Р [-8] Ц: Р [-1] Ц," "> 5" ")"Енд Суб |
Међутим, како бисмо формулу учинили још флексибилнијом, могли бисмо изменити код да изгледа овако:
123 | Суб ТестЦоунтИф ()АцтивеЦелл.ФормулаР1Ц1 = "= ЦОУНТИФ (Р [-8] Ц: Р [-1] Ц," "> 5" ")"Енд Суб |
Где год да се налазите на свом радном листу, формула ће затим пребројати ћелије које испуњавају критеријуме непосредно изнад ње и поставити одговор у вашу АцтивеЦелл. Распон унутар функције ЦОУНТИФ мора се позвати користећи синтаксу Ред (Р) и Колона (Ц).
Обе ове методе омогућавају вам да користите динамичке Екцел формуле у оквиру ВБА.
У Д10 ће сада уместо вредности бити формула.
Текст ваше везе