VBA funkciju atgriešanas masīvs

Šis raksts parādīs, kā atgriezt masīvu, izmantojot VBA funkciju.

VBA funkciju atgriešanas masīvs

Izmantojot funkcijas, lai atgrieztu masīvus, es ļoti iesaku deklarēt masīvus ar tipa variantu:

123 Funkcija ReturnArray () kā variantsBeigu funkcija

Variantu masīvi ir vieglāk strādāt. Masīva lielums kļūst mazāk satraucošs.

Funkciju atgriešanas masīva piemēri

Šeit ir piemērs funkcijai, kas atgriež masīvu:

1234567891011121314151617181920212223242526272829 Funkcija ReturnArray () kā variantsDim tempArr Kā variants'Izveidojiet jaunu temp masīvuReDim tempArr (no 1 līdz 3, no 1 līdz 2)Piešķiriet masīva vērtībastempArr (1, 1) = "Stīvs"tempArr (1, 2) = "Džonsons"tempArr (2, 1) = "Raiens"tempArr (2, 2) = "Džonsons"tempArr (3, 1) = "Endrjū"tempArr (3, 2) = "Skots"'Izvades masīvsReturnArray = tempArrBeigu funkcijaSub TestTransposeArray ()Dim outputArr As Variant'Zvana atgriešanas funkcijaoutputArr = ReturnArray ()'Testa izvadeMsgBox izejaArr (2, 1)Beigu apakš

Ievērojiet, ka masīvus deklarējām ar datu tipu = variants, lai izvairītos no lieluma problēmām.

Šajā piemērā masīvs tiek ievadīts, tas tiek transponēts un tiek izvadīts jaunais transponētais masīvs:

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 Funkcija TransposeArray (MyArray As Variant) Kā variantsIzmērs x tik garš, y tik garšDim maxX As Long, minX As LongDim maxY as Long, minY As LongDim tempArr Kā variants'Iegūstiet augšējās un apakšējās robežasmaxX = UBound (MyArray, 1)minX = LBound (MyArray, 1)maxY = UBound (MyArray, 2)minY = LBound (MyArray, 2)'Izveidojiet jaunu temp masīvuReDim tempArr (minX līdz maxX, minY līdz maxX)'Transponējiet masīvuAttiecībā uz x = minX līdz maxXAttiecībā uz y = minY līdz maxYtempArr (y, x) = MyArray (x, y)Nākamais gNākamais x'Izvades masīvsTransposeArray = tempArrBeigu funkcijaSub TestTransposeArray ()Dim testArr (1 līdz 3, 1 līdz 2) kā variantsDim outputArr As VariantPiešķiriet masīva vērtībastestArr (1, 1) = "Stīvs"testArr (1, 2) = "Džonsons"testArr (2, 1) = "Raiens"testArr (2, 2) = "Džonsons"testArr (3, 1) = "Endrjū"testArr (3, 2) = "Skots"'Zvanu transponēšanas funkcijaoutputArr = TransposeArray (testArr)'Testa izvadeMsgBox izejaArr (2, 1)Beigu apakš
wave wave wave wave wave