VBA -funktion paluujärjestelmä

Tässä artikkelissa kerrotaan, kuinka taulukko palautetaan VBA -toimintoa käyttämällä.

VBA -funktion paluujärjestelmä

Kun käytät funktioita matriisien palauttamiseen, suosittelen vahvasti matriisien ilmoittamista tyyppimuunnoksella:

123 Toiminto ReturnArray () VarianttinaLopeta toiminto

Vaihtoehtoiset taulukot on helpompi työskennellä. Taulukon koosta tulee vähemmän huolta.

Esimerkkejä toimintojen paluutaulukosta

Tässä on esimerkki funktiosta, joka palauttaa taulukon:

1234567891011121314151617181920212223242526272829 Toiminto ReturnArray () VarianttinaDim tempArr Vaihtoehtona'Luo uusi väliaikainen taulukkoReDim tempArr (1 - 3, 1 - 2)'Määritä ryhmäarvottempArr (1, 1) = "Steve"tempArr (1, 2) = "Johnson"tempArr (2, 1) = "Ryan"tempArr (2, 2) = "Johnson"tempArr (3, 1) = "Andrew"tempArr (3, 2) = "Scott"'TulostusjärjestelmäReturnArray = tempArrLopeta toimintoAlatestiTransposeArray ()Dim outputArr As Variant'Soiton palautustoimintooutputArr = ReturnArray ()'TestilähtöMsgBox -lähtöArr (2, 1)End Sub

Huomaa, että olemme ilmoittaneet taulukot, joissa on tietotyyppi = variantti, jotta vältetään kokoongelmat.

Tässä esimerkissä taulukko otetaan syötteeksi, transponoi taulukon ja tulostaa uuden transponoidun taulukon:

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 Toiminto TransposeArray (MyArray As Variant) VarianttinaDim x niin pitkä, y niin pitkäDim maxX niin pitkä, minX niin pitkäDim maxY niin pitkä, minY niin pitkäDim tempArr Vaihtoehtona'Hanki ylä- ja alarajatmaxX = UBound (MyArray, 1)minX = LBound (MyArray, 1)maxY = UBound (MyArray, 2)minY = LBound (MyArray, 2)'Luo uusi väliaikainen taulukkoReDim tempArr (minX - maxX, minY - maxX)'Transponoi ArrayX = minX - maxXY = minY - maxYtempArr (y, x) = MyArray (x, y)Seuraava ySeuraava x'TulostusjärjestelmäTransposeArray = tempArrLopeta toimintoAlatestiTransposeArray ()Dim testArr (1 - 3, 1 - 2) VaihtoehtonaDim outputArr As Variant'Määritä ryhmäarvottestArr (1, 1) = "Steve"testArr (1, 2) = "Johnson"testArr (2, 1) = "Ryan"testArr (2, 2) = "Johnson"testArr (3, 1) = "Andrew"testArr (3, 2) = "Scott"'Soita Transpose -toimintooutputArr = TransposeArray (testArr)'TestilähtöMsgBox -lähtöArr (2, 1)End Sub
wave wave wave wave wave