Looge massiivi tagastamiseks VBA -funktsioon

Lang L: none (table-of-contents)

Nagu pealkiri ütleb, õpime, kuidas luua Excelis kasutaja määratud funktsioon, mis tagastab massiivi. Oleme juba õppinud, kuidas luua VBA-s kasutaja määratud funktsiooni. Nii et ilma aega raiskamata alustame õpetusega.

Mis on massiivi funktsioon?

Massiivfunktsioonid on funktsioonid, mis tagastavad massiivi kasutamisel. Neid funktsioone kasutatakse koos klahvikombinatsioonidega CTRL+SHIFT+ENTER ning seetõttu eelistame CSE -funktsiooni ja valemitena massiivifunktsiooni või valemite kutsumist.

Exceli massiivi funktsiooniks on sageli mitmerakulised massiivivalemid. Üks näide on funktsioon TRANSPOSE.

UDF -massiivi funktsiooni loomine VBA -s

Niisiis, stsenaariumi järgi tahan lihtsalt funktsiooni ThreeEven () funktsiooni abil tagastada kolm esimest paarisarvu.

Kood näeb välja selline.

Funktsioon ThreeEven () täisarvuna () määratleb massiivi Dim numbrid (2) täisarvuna 'Määrake massiivi numbritele väärtused (0) = 0 numbrit (1) = 2 numbrit (2) = 4' tagastab väärtused ThreeEven = numbrid Lõppfunktsioon 

Kasutagem seda funktsiooni töölehel.

Näete, et valime kõigepealt kolm lahtrit (horisontaalselt, vertikaalse jaoks peame kasutama kahemõõtmelist massiivi. Meil ​​on see allpool kaetud). Siis hakkame oma valemit kirjutama. Seejärel vajutame CTRL+SHIFT+ENTER. See täidab valitud lahtrid massiivi väärtustega.

Märge:

  • Praktikas ei tea te, kui palju rakke vajate. Sel juhul valige alati rohkem lahtreid kui eeldatav massiivi pikkus. Funktsioon täidab lahtrid massiiviga ja täiendavad lahtrid näitavad viga #N/A.
  • Vaikimisi tagastab see massiivifunktsioon horisontaalse massiivi väärtused. Kui proovite valida vertikaalseid lahtreid, näitavad kõik lahtrid ainult massiivi esimest väärtust.

Kuidas see töötab?

Massiivfunktsiooni loomiseks peate järgima seda süntaksit.

FunktsioonifunktsioonNimi (muutujad) Tagastusena 

Funktsiooni deklaratsioon peab vastama ülaltoodud määratlusele. See kuulutas, et see on massiivfunktsioon.
Kui kasutate seda töölehel, peate kasutama klahvikombinatsiooni CTRL+SHIFT+ENTER. Vastasel juhul tagastab see ainult massiivi esimese väärtuse.

VBA massiivi funktsioon vertikaalse massiivi tagastamiseks

UDF -massiivi funktsiooni vertikaalseks toimimiseks ei pea te palju tegema. Lihtsalt kuulutage massiivid kahemõõtmeliseks massiiviks. Seejärel lisage esimeses dimensioonis väärtused ja jätke teine ​​mõõde tühjaks. Seda teete järgmiselt.

Funktsioon ThreeEven () täisarvuna () määratleb massiivi Dim numbrid (2,0) täisarvuna tagastab väärtused ThreeEven = numbrid End Function 

Nii saate seda töölehel kasutada.

UDF -massiivi funktsioon argumentidega Excelis

Ülaltoodud näidetes printisime lehele lihtsalt staatilised summad. Oletame, et tahame, et meie funktsioon võtaks vastu vahemiku argumendi, teeks nendega mõned toimingud ja tagastaks tulemuseks oleva massiivi.

Näide Lisage vahemiku igale väärtusele "-done"

Nüüd ma tean, et seda saab hõlpsasti teha, aga lihtsalt selleks, et näidata teile, kuidas saate probleemide lahendamiseks kasutada kasutaja määratud VBA massiivi funktsioone.

Niisiis, siin tahan massiivfunktsiooni, mis võtab argumendina vahemiku ja lisab igale vahemiku väärtusele "-done". Seda saab hõlpsasti teha, kasutades liitmise funktsiooni, kuid me kasutame siin massiivi funktsiooni.

Funktsioon CONCATDone (rng kui vahemik) Variandina () Dim resulArr () Variandina 'Loo kollektsioon Dim col nagu Uus kollektsioon' iga väärtuse toimingu lõpuleviimine ja nende lisamine massiivi ReDim resulArr (kol.arv - 1, 0) i = 0 veergu.arv - 1 resulArr (i, 0) = kol (i + 1) & "-valmis" Järgmine CONCATDone = resulArr Lõppfunktsioon 

Selgitus:

Ülaltoodud funktsioon aktsepteerib argumendina vahemikku ja lisab igale vahemiku väärtusele "-done".

Näete, et oleme massiivi väärtuste hoidmiseks kasutanud siin VBA kollektsiooni ja seejärel oleme teinud iga väärtusega oma toimingu ning lisanud need kahemõõtmelisele massiivile.

Nii et jah, poisid, nii saate luua kohandatud VBA massiivi funktsiooni, mis võib massiivi tagastada. Loodan, et see oli piisavalt selgitav. Kui teil on selle artikli kohta küsimusi, esitage see allolevasse kommentaaride sektsiooni.

Tööfaili allalaadimiseks klõpsake alloleval lingil:

Looge massiivi tagastamiseks VBA -funktsioon

Massiivid Excel Formulis | Lugege, millised massiivid on Excelis.

Kuidas luua kasutaja määratud funktsiooni VBA kaudu | Siit saate teada, kuidas Excelis kasutaja määratud funktsioone luua

Kasutaja määratud funktsiooni (UDF) kasutamine teisest töövihikust, kasutades Microsoft Excelis VBA -d | Kasutaja määratud funktsiooni saate kasutada mõnes teises Exceli töövihikus

Tagastab vigade väärtused kasutaja määratud funktsioonidest, kasutades Microsoft Excelis VBA-d | Siit saate teada, kuidas saate kasutaja määratud funktsiooni veaväärtusi tagastada

Populaarsed artiklid:

50 Exceli otseteed tootlikkuse suurendamiseks

Funktsioon VLOOKUP Excelis

COUNTIF Excelis 2016

Funktsiooni SUMIF kasutamine Excelis

Te aitate arengu ala, jagades leht oma sõpradega

wave wave wave wave wave