VBA függvény visszatérési tömb

Ez a cikk bemutatja, hogyan lehet visszaadni egy tömböt VBA függvény használatával.

VBA függvény visszatérési tömb

Amikor függvényeket használ tömbök visszaadására, határozottan javasoljuk a tömbváltozat típusú tömbök deklarálását:

123 Funkció ReturnArray () mint változatVége funkció

Változatos tömbök könnyebb velük dolgozni. A tömb mérete kevésbé aggasztó.

Funkcióvisszaadási tömb példák

Íme egy példa egy függvényre, amely tömböt ad vissza:

1234567891011121314151617181920212223242526272829 Funkció ReturnArray () mint változatDim tempArr mint változat'Új temp tömb létrehozásaReDim tempArr (1-3, 1-2)'Rendeljen tömbértékekettempArr (1, 1) = "Steve"tempArr (1, 2) = "Johnson"tempArr (2, 1) = "Ryan"tempArr (2, 2) = "Johnson"tempArr (3, 1) = "András"tempArr (3, 2) = "Scott"'Kimeneti tömbReturnArray = tempArrVége funkcióSub TestTransposeArray ()Dim outputArr As Variant'Hívásvisszahívás funkcióoutputArr = ReturnArray ()'Teszt kimenetMsgBox kimenetArr (2, 1)End Sub

Figyeljük meg, hogy a méretekkel kapcsolatos problémák elkerülése érdekében a tömböket adattípus = variánssá nyilvánítottuk.

Ez a példa tömböt használ bemenetként, transzponálja a tömböt, és kiadja az új transzponált tömböt:

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 Funkció TransposeArray (MyArray As Variant) Mint VariantDim x Amilyen hosszú, y Olyan hosszúDim maxX olyan hosszú, minX olyan hosszúDim maxY Long, minY As LongDim tempArr mint változat'Szerezd meg a felső és alsó határokatmaxX = UBound (MyArray, 1)minX = LBound (MyArray, 1)maxY = UBound (MyArray, 2)minY = LBound (MyArray, 2)'Új temp tömb létrehozásaReDim tempArr (minX - maxX, minY - maxX)- A tömb átültetéseX = minX és maxX közöttY = minY és maxY közötttempArr (y, x) = MyArray (x, y)Következő yKövetkező x'Kimeneti tömbTransposeArray = tempArrVége funkcióSub TestTransposeArray ()Dim tesztArr (1 -től 3 -ig, 1 -től 2 -ig) VariantkéntDim outputArr As Variant'Rendeljen tömbértékekettestArr (1, 1) = "Steve"testArr (1, 2) = "Johnson"testArr (2, 1) = "Ryan"testArr (2, 2) = "Johnson"testArr (3, 1) = "András"testArr (3, 2) = "Scott"'Hívás transzponálás funkcióoutputArr = TransposeArray (testArr)'Teszt kimenetMsgBox kimenetArr (2, 1)End Sub
wave wave wave wave wave