Pole návratu funkcie VBA

Tento článok ukáže, ako vrátiť pole pomocou funkcie VBA.

Pole návratu funkcie VBA

Pri použití funkcií na vrátenie polí dôrazne odporúčam deklarovať polia s variantom typu:

123 Funkcia ReturnArray () ako variantKoncová funkcia

Variantné polia je s nimi jednoduchšie pracovať. Veľkosť poľa sa stáva menším problémom.

Príklady návratového poľa funkcie

Tu je príklad funkcie, ktorá vracia pole:

1234567891011121314151617181920212223242526272829 Funkcia ReturnArray () ako variantDim tempArr As Variant„Vytvorte nové dočasné poleReDim tempArr (1 až 3, 1 až 2)'Priraďte hodnoty poľatempArr (1, 1) = "Steve"tempArr (1, 2) = "Johnson"tempArr (2, 1) = "Ryan"tempArr (2, 2) = "Johnson"tempArr (3, 1) = "Andrew"tempArr (3, 2) = "Scott"„Výstupné poleReturnArray = tempArrKoncová funkciaSub TestTransposeArray ()Dim outputArr As Variant'Funkcia návratu hovoruoutputArr = ReturnArray ()„Testovací výstupMsgBox outputArr (2, 1)Koniec pod

Všimnite si toho, že sme deklarovali Polia s dátovým typom = variant, aby sme sa vyhli problémom s veľkosťou.

Tento príklad berie pole ako vstup, transponuje pole a vydáva nové transponované pole:

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 Funkcia TransposeArray (MyArray As Variant) Ako VariantDim x ako dlhé, y tak dlhéDimXX ako dlhý, minX tak dlhýDim maxY Ako dlho, minY ako dlhoDim tempArr As Variant„Získajte horné a dolné hranicemaxX = UBound (MyArray, 1)minX = LViazané (MyArray, 1)maxY = UBound (MyArray, 2)minY = LViazané (MyArray, 2)„Vytvorte nové dočasné poleReDim tempArr (minX až maxX, minY až maxX)„Transponujte polePre x = minX až maxXPre y = minY až maxYtempArr (y, x) = MyArray (x, y)Ďalšie yDalej x„Výstupné poleTransposeArray = tempArrKoncová funkciaSub TestTransposeArray ()Dim testArr (1 až 3, 1 až 2) ako variantDim outputArr As Variant'Priraďte hodnoty poľatestArr (1, 1) = "Steve"testArr (1, 2) = "Johnson"testArr (2, 1) = "Ryan"testArr (2, 2) = "Johnson"testArr (3, 1) = "Andrew"testArr (3, 2) = "Scott"'Funkcia transpozície hovoruoutputArr = TransposeArray (testArr)„Testovací výstupMsgBox outputArr (2, 1)Koniec pod

Vám pomôže rozvoju miesta, zdieľať stránku s priateľmi

wave wave wave wave wave