VBA Function Return Array

Πίνακας περιεχομένων

Αυτό το άρθρο θα δείξει πώς να επιστρέψετε έναν πίνακα χρησιμοποιώντας μια συνάρτηση VBA.

VBA Function Return Array

Όταν χρησιμοποιείτε συναρτήσεις για να επιστρέψετε πίνακες, συνιστώ ανεπιφύλακτα να δηλώσετε πίνακες με παραλλαγή τύπου:

123 Συνάρτηση ReturnArray () Ως παραλλαγήΛειτουργία Τέλους

Παραλλαγές συστοιχιών είναι πιο εύκολο να συνεργαστείτε. Το μέγεθος του πίνακα είναι λιγότερο ανησυχητικό.

Παραδείγματα πίνακα επιστροφής συναρτήσεων

Ακολουθεί ένα παράδειγμα συνάρτησης που επιστρέφει έναν πίνακα:

1234567891011121314151617181920212223242526272829 Συνάρτηση ReturnArray () Ως παραλλαγήDim tempArr As Variant«Δημιουργία νέου πίνακα TempReDim tempArr (1 έως 3, 1 έως 2)'Εκχώρηση τιμών πίνακαtempArr (1, 1) = "Στιβ"tempArr (1, 2) = "Johnson"tempArr (2, 1) = "Ράιαν"tempArr (2, 2) = "Johnson"tempArr (3, 1) = "Ανδρέας"tempArr (3, 2) = "Scott"'Πίνακας εξόδουReturnArray = tempArrΛειτουργία ΤέλουςSub TestTransposeArray ()Χαμηλή έξοδος Arr As Variant«Λειτουργία επιστροφής κλήσεωνoutputArr = ReturnArray ()'Έξοδος δοκιμήςΈξοδος MsgBoxArr (2, 1)Τέλος υπο

Σημειώστε ότι δηλώσαμε τους πίνακες με τύπο δεδομένων = παραλλαγή για να αποφύγουμε προβλήματα μεγέθους.

Αυτό το παράδειγμα παίρνει έναν πίνακα ως είσοδο, μεταφέρει τον πίνακα και εξάγει τον νέο πίνακα μεταφοράς:

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 Λειτουργία TransposeArray (MyArray As Variant) Ως ΠαραλλαγήDim x As Long, y As LongDim maxX όσο μακρύ, minX όσο μακρύDim maxY As Long, minY As LongDim tempArr As Variant«Λάβετε ανώτερα και κατώτερα όριαmaxX = UBound (MyArray, 1)minX = LBound (MyArray, 1)maxY = UBound (MyArray, 2)minY = LBound (MyArray, 2)«Δημιουργία νέου πίνακα TempReDim tempArr (minX έως maxX, minY έως maxX)«Μεταφορά του πίνακαΓια x = minX έως maxXΓια y = minY έως maxYtempArr (y, x) = MyArray (x, y)Επόμενο yΕπόμενο x'Πίνακας εξόδουTransposeArray = tempArrΛειτουργία ΤέλουςSub TestTransposeArray ()Dim testArr (1 έως 3, 1 έως 2) Ως παραλλαγήΧαμηλή έξοδος Arr As Variant'Εκχώρηση τιμών πίνακαtestArr (1, 1) = "Στιβ"testArr (1, 2) = "Τζόνσον"testArr (2, 1) = "Ράιαν"testArr (2, 2) = "Τζόνσον"testArr (3, 1) = "Andrew"testArr (3, 2) = "Scott"«Λειτουργία μεταφοράς κλήσεωνoutputArr = TransposeArray (testArr)'Έξοδος δοκιμήςΈξοδος MsgBoxArr (2, 1)Τέλος υπο
wave wave wave wave wave