Izveidojiet VBA funkciju masīva atgriešanai

Satura rādītājs:

Anonim

Kā norāda nosaukums, mēs uzzināsim, kā programmā Excel izveidot lietotāja definētu funkciju, kas atgriež masīvu. Mēs jau esam iemācījušies izveidot lietotāja definētu funkciju VBA. Tāpēc, netērējot laiku, sāksim darbu ar apmācību.

Kas ir masīva funkcija?

Masīva funkcijas ir funkcijas, kas atgriež masīvu, kad tās tiek izmantotas. Šīs funkcijas tiek izmantotas kopā ar taustiņu kombinācijām CTRL+SHIFT+ENTER, un tāpēc mēs izvēlamies izsaukt masīva funkciju vai formulas kā TPP funkciju un formulas.

Excel masīva funkcija bieži ir daudzšūnu masīva formulas. Viens piemērs ir funkcija TRANSPOSE.

UDF masīva funkcijas izveide VBA

Tātad, scenārijs ir tāds, ka es tikai vēlos atgriezt pirmos 3 pāra skaitļus, izmantojot funkciju ThreeEven ().

Kods izskatīsies šādi.

Funkcija ThreeEven () Kā vesels skaitlis () 'definē masīvu Dim skaitļi (2) Kā vesels skaitlis' Piešķirt vērtības masīva numuriem (0) = 0 skaitļi (1) = 2 skaitļi (2) = 4 'atgriezt vērtības ThreeEven = skaitļi Beigu funkcija 

Izmantosim šo funkciju darblapā.

Jūs varat redzēt, ka mēs vispirms izvēlamies trīs šūnas (horizontāli, vertikāli mums jāizmanto divdimensiju masīvs. Mēs to aplūkojam tālāk.). Tad mēs sākam rakstīt savu formulu. Pēc tam mēs nospiedām CTRL+SHIFT+ENTER. Tas aizpilda atlasītās šūnas ar masīva vērtībām.

Piezīme:

  • Praksē jūs nezināt, cik šūnu jums vajadzēs. Tādā gadījumā vienmēr atlasiet vairāk šūnu, nekā paredzēts masīva garums. Funkcija aizpildīs šūnas ar masīvu, un papildu šūnas parādīs kļūdu #N/A.
  • Pēc noklusējuma šī masīva funkcija atgriež vērtības horizontālā masīvā. Ja mēģināt atlasīt vertikālās šūnas, visas šūnas parādīs tikai masīva pirmo vērtību.

Kā tas strādā?

Lai izveidotu masīva funkciju, jums jāievēro šī sintakse.

Funkciju funkcija 

Funkcijas deklarācijai jābūt tādai, kā definēts iepriekš. Tas paziņoja, ka tā ir masīva funkcija.
Lietojot to darblapā, jums ir jāizmanto taustiņu kombinācija CTRL+SHIFT+ENTER. Pretējā gadījumā tiks atgriezta tikai masīva pirmā vērtība.

VBA masīva funkcija, lai atgrieztu vertikālo masīvu

Lai UDF masīva funkcija darbotos vertikāli, jums nav daudz jādara. Vienkārši deklarējiet masīvus kā divdimensiju masīvu. Tad pirmajā dimensijā pievienojiet vērtības un otru dimensiju atstājiet tukšu. Jūs to darāt šādi:

Funkcija ThreeEven () Kā vesels skaitlis () 'definē masīvu Dim skaitļi (2,0) Kā vesels skaitlis' Piešķirt vērtības masīva numuriem (0,0) = 0 skaitļi (1,0) = 2 skaitļi (2,0) = 4 ' atgriezt vērtības ThreeEven = skaitļi Beigu funkcija 

Tādā veidā jūs to izmantojat darblapā.

UDF masīva funkcija ar argumentiem programmā Excel

Iepriekš minētajos piemēros mēs vienkārši iespiedām uz lapas statiskās summas. Pieņemsim, ka mēs vēlamies, lai mūsu funkcija pieņemtu diapazona argumentu, veiktu ar tām dažas darbības un atgrieztu iegūto masīvu.

Piemērs Pievienojiet "-done" katrai diapazona vērtībai

Tagad es zinu, ka to var izdarīt viegli, bet tikai, lai parādītu, kā problēmu risināšanai varat izmantot lietotāja definētas VBA masīva funkcijas.

Tātad, šeit es vēlos masīva funkciju, kas kā argumentu ņem diapazonu un katrai diapazona vērtībai pievieno "-done". To var viegli izdarīt, izmantojot saplūšanas funkciju, taču šeit mēs izmantosim masīva funkciju.

Funkcija CONCATDone (rng kā diapazons) kā variants () Dim resulArr () kā variants 'Izveidot kolekciju Dim col kā jauna kolekcija' Vērtību pievienošana par kļūdu Atsākt katru v pabeidzot darbību ar katru vērtību un pievienojot to masīvam ReDim resulArr (kol. skaits - 1, 0) Attiecībā uz i = 0 līdz kolonnai. skaits - 1 resulArr (i, 0) = kols (i + 1) un "-darīts" Nākamais CONCATDone = resulArr beigu funkcija 

Skaidrojums:

Iepriekš minētā funkcija pieņems diapazonu kā argumentu un katrai diapazona vērtībai pievienos "-done".

Jūs varat redzēt, ka mēs esam izmantojuši VBA kolekciju, lai turētu masīva vērtības, un pēc tam mēs esam veikuši savu darbību ar katru vērtību un pievienojuši tos divdimensiju masīvam.

Jā, puiši, šādi jūs varat izveidot pielāgotu VBA masīva funkciju, kas var atgriezt masīvu. Es ceru, ka tas bija pietiekami izskaidrojošs. Ja jums ir kādi jautājumi par šo rakstu, ievietojiet to komentāru sadaļā zemāk.

Noklikšķiniet uz tālāk esošās saites, lai lejupielādētu darba failu:

Izveidojiet VBA funkciju masīva atgriešanai

Masīvi programmā Excel Formul | Uzziniet, kādi masīvi ir pieejami programmā Excel.

Kā izveidot lietotāja definētu funkciju, izmantojot VBA | Uzziniet, kā programmā Excel izveidot lietotāja definētas funkcijas

Lietotāja definētas funkcijas (UDF) izmantošana no citas darbgrāmatas, izmantojot VBA programmā Microsoft Excel | Izmantojiet lietotāja definētu funkciju citā Excel darbgrāmatā

Atgriež kļūdas vērtības no lietotāja definētām funkcijām, izmantojot Microsoft Excel VBA Uzziniet, kā atgriezt kļūdu vērtības no lietotāja definētas funkcijas

Populāri raksti:

50 Excel saīsnes, lai palielinātu produktivitāti

Funkcija VLOOKUP programmā Excel

COUNTIF programmā Excel 2016

Kā lietot SUMIF funkciju programmā Excel