Креирајте ВБА функцију за враћање низа

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

Шта је функција низа?

Функције низа су функције које враћају низ када се користе. Ове функције се користе са комбинацијама тастера ЦТРЛ+СХИФТ+ЕНТЕР и зато више волимо позивање функције низа ни формуле као ЦСЕ функције и формуле.

Екцел функција низа често је формула са више ћелија. Један пример је функција ТРАНСПОСЕ.

Креирање функције УДФ низа у ВБА

Дакле, сценарио је да само желим да вратим прва 3 парна броја помоћу функције ТхрееЕвен ().

Код ће изгледати овако.

Функција ТхрееЕвен () Као Интегер () 'дефинишите низ Дим бројеве (2) Ас Интегер' Доделите вредности бројевима низа (0) = 0 бројева (1) = 2 броја (2) = 4 'повратне вредности ТхрееЕвен = бројеви Крај Функција 

Користимо ову функцију на радном листу.

Видите то, прво бирамо три ћелије (хоризонтално, за вертикално морамо да користимо дводимензионални низ. То смо покрили испод.). Затим почињемо са писањем наше формуле. Затим притиснемо ЦТРЛ+СХИФТ+ЕНТЕР. Ово испуњава изабране ћелије вредностима низа.

Белешка:

  • У пракси нећете знати колико ће вам ћелија требати. У том случају увек изаберите више ћелија од очекиване дужине низа. Функција ће испунити ћелије низом, а додатне ћелије ће показати грешку #Н/А.
  • Подразумевано, ова функција низа враћа вредности у хоризонталном низу. Ако покушате да изаберете вертикалне ћелије, све ћелије ће приказивати само прву вредност низа.

Како то ради?

Да бисте креирали функцију низа, морате следити ову синтаксу.

ФункцијаНазив функције (променљиве) Као ретурнТипе () затамњује ресултАрраи (дужина) као датаТипе 'Овде додељујте вредности низу фунцтионНаме = ресултАрраи Енд Функција 

Декларација функције мора бити као што је горе дефинисано. Ово је објавило да је то функција низа.
Док га користите на радном листу, морате користити комбинацију тастера ЦТРЛ+СХИФТ+ЕНТЕР. У супротном ће вратити само прву вредност низа.

Функција ВБА низа за враћање вертикалног низа

Да би ваша функција УДФ низа радила вертикално, не морате много да радите. Само декларишите низове као дводимензионални низ. Затим у прву димензију додајте вредности, а другу димензију оставите празну. Ево како то радите:

Функција ТхрееЕвен () Ас Интегер () 'дефинишите низ Дим бројеве (2,0) Ас Интегер' Доделите вредности бројевима низа (0,0) = 0 бројева (1,0) = 2 броја (2,0) = 4 ' повратне вредности ТхрееЕвен = бројеви Крајња функција 

Овако га користите на радном листу.

УДФ функција низа са аргументима у Екцелу

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

Пример Додајте "-доне" свакој вредности у опсегу

Сада знам да се то може учинити једноставно, али само да вам покажем како можете користити кориснички дефиниране функције ВБА низа за рјешавање проблема.

Дакле, овде желим функцију низа која узима опсег као аргумент и додаје "-доне" свакој вредности у опсегу. Ово се може лако урадити помоћу функције повезивања, али овде ћемо користити функцију низа.

Функција ЦОНЦАТДоне (рнг Ас Ранге) Ас Вариант () Дим ресултАрр () Ас Вариант 'Направи колекцију Дим цол Као нова колекција' Додавање вредности у колекцију Он Еррор Ресуме Нект За сваки в У рнг цол.Адд в Нект Он Еррор ГоТо 0 ' довршавање операције над сваком вредношћу и њихово додавање у низ РеДим ресултАрр (цол.Цоунт - 1, 0) За и = 0 За цол.Цоунт - 1 ресултАрр (и, 0) = цол (и + 1) & "-доне" Даље ЦОНЦАТДоне = Резултатска функција Крај функције 

Објашњење:

Горња функција ће прихватити опсег као аргумент и додаће "-доне" свакој вредности у опсегу.

Можете видети да смо овде користили ВБА колекцију за држање вредности низа, а затим смо обавили операцију на свакој вредности и додали их назад у дводимензионални низ.

Па да, момци, овако можете створити прилагођену функцију ВБА низа која може вратити низ. Надам се да је било довољно објашњење. Ако имате било каквих питања у вези са овим чланком, поставите их у одељак за коментаре испод.

Кликните на доњу везу да бисте преузели радну датотеку:

Креирајте ВБА функцију за враћање низа

Низови у Екцел Формул -у | Сазнајте који су низови у Екцелу.

Како креирати кориснички дефинисану функцију путем ВБА | Научите како да креирате кориснички дефинисане функције у програму Екцел

Коришћење кориснички дефинисане функције (УДФ) из друге радне свеске помоћу ВБА у програму Мицрософт Екцел | Користите кориснички дефинисану функцију у другој радној свесци програма Екцел

Врати вредности грешака из кориснички дефинисаних функција помоћу ВБА у Мицрософт Екцелу | Сазнајте како можете вратити вредности грешака из кориснички дефинисане функције

Популарни чланци:

50 Екцел пречица за повећање продуктивности

Функција ВЛООКУП у Екцелу

ЦОУНТИФ у програму Екцел 2016

Како се користи функција СУМИФ у програму Екцел

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

wave wave wave wave wave