Πίνακας περιεχομένων
Αυτό το άρθρο θα δείξει πώς να επιστρέψετε έναν πίνακα χρησιμοποιώντας μια συνάρτηση 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)Τέλος υπο |