ВБА функција збира (распони, колоне и друго)

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

Функција збира једна је од најчешће коришћених Екцел функција и вероватно прва коју Екцел корисници науче да користе. ВБА заправо нема еквивалент - корисник мора да користи уграђену Екцел функцију у ВБА користећи ВоркСхеетФунцтион објекат.

Збирни радни лист Функција

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

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

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

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

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

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

123 Суб ТестСум ()Опсег ("Д25") = Функција радног листа.СУМ (Опсег ("Д1: Д24"), Опсег ("Ф1: Ф24"))Енд Суб

Напомена за један опсег ћелија не морате да наведете реч „опсег“ у формули испред ћелија, то претпоставља код. Међутим, ако користите више аргумената, морате то учинити.

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

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

1234567 Суб АссигнСумВариабле ()Затамните резултат као двоструки'Доделите променљивуресулт = ВорксхеетФунцтион.СУМ (Опсег ("Г2: Г7"), Опсег ("Х2: Х7"))'Покажи резултатМсгБок "Укупни распони су" & резултатЕнд Суб

Збројите објекат опсега

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

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

Зброји више објеката распона

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

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

Зброји целу колону или ред

Такође можете користити функцију Збрајање да бисте сабрали целу колону или читав ред

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

123 Суб ТестСум ()Опсег ("Ф1") = Функција радног листа.СУМ (Опсег ("Д: Д")Енд Суб

Иако ће овај поступак у наставку збрајати све нумеричке ћелије у 9. реду.

123 Суб ТестСум ()Опсег ("Ф2") = Функција радног листа.СУМ (Опсег ("9: 9"))Енд Суб

Зброји низ

Такође можете користити ВорксхеетФунцтион.Сум за додавање вредности у низ.

123456789101112 Суб ТестАрраи ()Дим интА (1 до 5) као цео бројДим СумАрраи као цео број'попуни низинтА (1) = 15интА (2) = 20интА (3) = 25интА (4) = 30интА (5) = 40'саберите низ и покажите резултатМсгБок ВорксхеетФунцтион.СУМ (интА)Енд Суб

Коришћење функције СумИф

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

123 Суб ТестСумИф ()Опсег ("Д11") = Функција радног листа.СУМИФ (Опсег ("Ц2: Ц10"), 150, Опсег ("Д2: Д10"))Енд Суб

Горе наведени поступак ће збрајати ћелије у опсегу (Д2: Д10) само ако је одговарајућа ћелија у колони Ц = 150.

Формула збира

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

У горњем примеру, поступак ТестСум је збрајао опсег (Д2: Д10) и резултат је стављен у Д11. Као што можете видети на траци са формулама, овај резултат је бројка, а не формула.

Ако се нека од вредности промени у опсегу (Д2: Д10), резултат у Д11 ће бити НЕ промена.

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

Метода формуле

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

123 Суб ТестСумФормулаОпсег ("Д11"). Формула = "= СУМ (Д2: Д10)"Енд Суб

ФормулаР1Ц1 Метода

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

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

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

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

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

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

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

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

wave wave wave wave wave