VBA String Array | Πώς να δηλώσετε και να αρχικοποιήσετε το String Array στο Excel VBA;
Excel VBA String Array
Στο VBA, ο πίνακας συμβολοσειρών δεν είναι παρά μια μεταβλητή πίνακα που μπορεί να χωρέσει περισσότερες από μία τιμές συμβολοσειράς με μία μόνο μεταβλητή.
Για παράδειγμα, δείτε τον παρακάτω κώδικα VBA.
Κώδικας:
Sub String_Array_Example () Dim CityList (1 to 5) As Variant CityList (1) = "Bangalore" CityList (2) = "Mumbai" CityList (3) = "Kolkata" CityList (4) = "Hyderabad" CityList (5) = "Orissa" MsgBox CityList (1) & "," & CityList (2) & "," & CityList (3) & "," & CityList (4) & "," & CityList (5) End Sub
Στον παραπάνω κώδικα, έχω δηλώσει ως μεταβλητή πίνακα και εκχώρησα το μήκος ενός πίνακα ως 1 έως 5.
Dim CityList (1 έως 5) ως παραλλαγή
Για αυτήν τη μεταβλητή πίνακα, έχω εκχωρήσει 5 ονόματα πόλεων που αναφέρουν κάθε αριθμό συστοιχιών στην παρένθεση.
CityList (1) = "Bangalore" CityList (2) = "Mumbai" CityList (3) = "Kolkata" CityList (4) = "Χαϊντεραμπάντ" CityList (5) = "Orissa"
Στη συνέχεια, έχω γράψει έναν κωδικό για να εμφανίσω αυτά τα ονόματα πόλεων στο πλαίσιο μηνυμάτων.
MsgBox CityList (1) & "," & CityList (2) & "," & CityList (3) & "," & CityList (4) & "," & CityList (5)
Όταν εκτελώ αυτόν τον κωδικό θα λάβουμε ένα πλαίσιο μηνύματος που θα εμφανίζει όλα τα ονόματα των πόλεων σε ένα μόνο πλαίσιο μηνύματος.
Όλοι γνωρίζουμε ότι αυτό έχει εξοικονομήσει πολύ χρόνο από το πρόγραμμά μας, εξαλείφοντας το καθήκον της δήλωσης μεμονωμένων μεταβλητών για κάθε πόλη. Ωστόσο, ένα ακόμη πράγμα που πρέπει να μάθετε είναι ότι μπορούμε ακόμα να μειώσουμε τον κώδικα γραμμής που γράφουμε για τιμές συμβολοσειράς. Ας δούμε πώς γράφουμε κώδικα για συστοιχίες συμβολοσειρών VBA.
Παραδείγματα String Array στο Excel VBA
Ακολουθούν τα παραδείγματα ενός πίνακα συμβολοσειρών excel vba.
Μπορείτε να κατεβάσετε αυτό το πρότυπο VBA String Array Excel εδώ - Πρότυπο VBA String Array ExcelΠαράδειγμα # 1
Όπως έχουμε δει στον παραπάνω κώδικα μάθαμε ότι μπορούμε να αποθηκεύσουμε περισσότερες από μία τιμές στη μεταβλητή με βάση το καθορισμένο μέγεθος πίνακα.
Τώρα αυτό που πρέπει να κάνουμε είναι να μην αποφασίσουμε εκ των προτέρων το μήκος του πίνακα.
Κώδικας:
Sub String_Array_Example1 () Dim CityList () ως Variant End Sub
Όπως μπορείτε να δείτε παραπάνω μέσα στην παρένθεση δεν έχω γράψει κανένα μήκος. Τώρα για αυτήν τη μεταβλητή ας εισαγάγουμε τιμές χρησιμοποιώντας τη συνάρτηση VBA ARRAY.
Μέσα στο Array περάστε τις τιμές σε διπλά εισαγωγικά διαχωρισμένες με κόμμα (,).
Κώδικας:
Sub String_Array_Example () Dim CityList () As Variant CityList = Array ("Bangalore", "Mumbai", "Kolkata", "Hyderabad", "Orissa") End Sub
Τώρα διατηρήστε τον παλιό κωδικό για να εμφανίσετε το αποτέλεσμα των ονομάτων πόλεων στο πλαίσιο μηνυμάτων στο VBA.
Κώδικας:
Sub String_Array_Example1 () Dim CityList () As Variant CityList = Array ("Bangalore", "Mumbai", "Kolkata", "Hyderabad", "Orissa") MsgBox CityList (0) & "," & CityList (1) & " , "& CityList (2) &", "& CityList (3) &", "& CityList (4) End Sub
Μία αλλαγή που έχω κάνει στον παραπάνω κώδικα είναι επειδή δεν έχουμε αποφασίσει το κατώτατο όριο και το ανώτερο όριο μιας μεταβλητής πίνακα και έχουμε χρησιμοποιήσει τον αριθμό συστοιχιών συνάρτησης ARRAY θα ξεκινήσει από 0 όχι από 1.
Έτσι, αυτός είναι ο λόγος που αναφέραμε τις τιμές ως CityList (0), ClityList (1), CityList (2), CityList (3) και CityList (4).
Τώρα εκτελέστε τον κωδικό μέσω του πλήκτρου συντόμευσης excel F5 ή χειροκίνητα, έχουμε το ίδιο αποτέλεσμα όπως παίρνουμε από τον προηγούμενο κώδικα.
Παράδειγμα # 2
VBA String Array με ΛΕΙΤΟΥΡΓΙΕΣ & ΛΕΙΤΟΥΡΓΙΕΣ ΛΕΙΤΟΥΡΓΙΕΣ
Σε περίπτωση που δεν θέλετε να εμφανίζεται όλη η λίστα πόλεων σε ένα πλαίσιο μηνύματος, τότε πρέπει να συμπεριλάβετε βρόχους, να ορίσετε μια ακόμη μεταβλητή για βρόχους.
Τώρα για να συμπεριλάβουμε το βρόχο FOR NEXT, δεν είμαστε σίγουροι πόσες φορές χρειαζόμαστε για να εκτελέσουμε τον κώδικα, σε αυτήν την περίπτωση, μπορούμε να τον αποφασίσουμε όπως 5 φορές, αλλά αυτός δεν είναι ο σωστός τρόπος προσέγγισης του προβλήματος. Λοιπόν, τι γίνεται με την ιδέα του αυτόματου αναγνωριστικού μήκους συστοιχίας χαμηλότερου και υψηλότερου επιπέδου ???
Όταν ανοίγουμε ΓΙΑ ΕΠΟΜΕΝΟ βρόχο, συνήθως αποφασίζουμε το μήκος του βρόχου ως 1 έως 5 ή 1 έως 10 ανάλογα με την κατάσταση. Αντί να εισάγουμε τους αριθμούς με μη αυτόματο τρόπο, ας χρησιμοποιήσουμε τη συνάρτηση LBOUND και UBOUND για να αποφασίσουμε αυτόματα τη χαμηλότερη και την ανώτερη τιμή.
Για το LBound και το Ubound έχω παράσχει όνομα πίνακα, δηλαδή CityList. Το VBA LBound προσδιορίζει την χαμηλότερη τιμή της μεταβλητής πίνακα και η συνάρτηση VBA UBound προσδιορίζει την ανώτερη τιμή της μεταβλητής πίνακα.
Τώρα δείξτε την τιμή στο πλαίσιο μηνύματος, αντί να εισαγάγετε τον σειριακό αριθμό, αφήστε τη μεταβλητή βρόχου "k" να πάρει την τιμή του πίνακα αυτόματα.
Κώδικας:
Sub String_Array_Example1 () Dim CityList () As Variant Dim k As Integer CityList = Array ("Bangalore", "Mumbai", "Kolkata", "Hyderabad", "Orissa") Για k = LBound (CityList) To UBound (CityList) MsgBox CityList (k) Επόμενο k End Sub
Τώρα το πλαίσιο μηνυμάτων θα εμφανίζει κάθε όνομα πόλης ξεχωριστά.
Παράδειγμα # 3
VBA String Array με λειτουργία Split
Τώρα υποθέστε ότι έχετε ονόματα πόλεων όπως παρακάτω.
Μπανγκαλόρ; Βομβάη; Καλκούτα; Hydrabad; Orissa
Σε αυτήν την περίπτωση, όλες οι πόλεις συνδυάζονται με το κόλον που χωρίζει κάθε πόλη. Σε τέτοιες περιπτώσεις, πρέπει να χρησιμοποιήσουμε τη λειτουργία SPLIT για να διαχωρίσουμε κάθε πόλη.
Για Expression παρέχετε τη λίστα πόλεων
Κώδικας:
Sub String_Array_Example2 () Dim CityList () As String Dim k As Integer CityList = Split ("Bangalore; Mumbai; Kolkata; Hydrabad; Orissa", For k = LBound (CityList) To UBound (CityList) MsgBox CityList (k) Next k End Υπο
Το επόμενο επιχείρημα είναι "Οριοθέτης", δηλαδή ποιος είναι ο μοναδικός χαρακτήρας που χωρίζει κάθε πόλη από άλλες πόλεις, στην περίπτωση αυτή, "Colon".
Κώδικας:
Sub String_Array_Example2 () Dim CityList () As String Dim k As Integer CityList = Split ("Bangalore; Mumbai; Kolkata; Hydrabad; Orissa", ";") For k = LBound (CityList) To UBound (CityList) MsgBox CityList (k ) Επόμενο k End Sub
Τώρα οι τιμές διαχωρισμού συνάρτησης SPLIT καθορίζουν επίσης το υψηλότερο μήκος πίνακα.
Πράγματα που πρέπει να θυμάστε
- Το LBOUND και το UBOUND είναι συναρτήσεις για τον προσδιορισμό των μήκους του πίνακα.
- Η συνάρτηση ARRAY μπορεί να διατηρήσει πολλές τιμές για μια δηλωμένη μεταβλητή.
- Μία φορά εάν θέλετε να χρησιμοποιήσετε τη λειτουργία ARRAY, μην αποφασίσετε το μήκος του πίνακα.