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

Παράδειγμα # 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 with LBOUND & UBOUND Functions

In case if you don’t want to show all the city lists in a single message box, then you need to include loops, define one more variable for loops.

Now to include FOR NEXT loop, we are not sure how many times we need to run the code. In this case, we can decide it like 5 times, but that is not the right way to approach the problem. So how about the idea of auto lower and higher level array length identifier???

When we open FOR NEXT loop, we usually decide the loop length as 1 to 5 or 1 to 10 depending upon the situation. Instead of entering the numbers manually, let’s use LBOUND and UBOUND function to decide on the lower value and upper value automatically.

For LBound and Ubound, I have supplied an array name, i.e., CityList. VBA LBound identifies the lower value of the array variable, and VBA UBound function identifies the upper value of the array variable.

Now show the value in the message box, instead of inserting the serial number, let the loop variable “k” takes the array value automatically.

Code:

Sub String_Array_Example1() Dim CityList() As Variant Dim k As Integer CityList = Array("Bangalore", "Mumbai", "Kolkata", "Hyderabad", "Orissa") For k = LBound(CityList) To UBound(CityList) MsgBox CityList(k) Next k End Sub

Now the message box will show each city name separately.

Example #3

VBA String Array with Split Function

Now assume you have city names like the below.

Bangalore;Mumbai;Kolkata;Hydrabad;Orissa

In this case, all the cities are combined together with the colon separating each city. In such cases, we need to use the SPLIT function to separate each city.

For Expression, supply the city list.

Code:

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 Sub

The next argument is “Delimiter,” i.e., what is the one character that is separating each city from other cities. In this case, “Colon.”

Code:

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 Sub

Τώρα οι τιμές διαχωρισμού συνάρτησης SPLIT καθορίζουν επίσης το υψηλότερο μήκος πίνακα

Πράγματα που πρέπει να θυμάστε

  • Το LBOUND και το UBOUND είναι συναρτήσεις για τον προσδιορισμό των μήκους του πίνακα.
  • Η συνάρτηση ARRAY μπορεί να διατηρήσει πολλές τιμές για μια δηλωμένη μεταβλητή.
  • Μόλις θέλετε να χρησιμοποιήσετε τη συνάρτηση ARRAY, μην αποφασίσετε το μήκος του πίνακα.

ενδιαφέροντα άρθρα...