excel vba array array methods with examples
Αυτό το σεμινάριο θα εξηγήσει το VBA Array, διάφορους τύπους πίνακα, παραλλαγές πίνακα και μεθόδους πίνακα με τη βοήθεια παραδειγμάτων προγραμματισμού:
Μια κανονική μεταβλητή VBA είναι ένας κάτοχος θέσης που αποθηκεύει την τιμή ενός μόνο δεδομένων. Έχει σχέση 1 προς 1, δηλαδή 1 μεταβλητή για 1 τιμή.
Τώρα φανταστείτε να αποθηκεύσετε πολλές τιμές ίδιου τύπου. Αντί να δημιουργήσετε πολλές μεταβλητές, μπορείτε απλώς να δημιουργήσετε μία μεταβλητή και να αποθηκεύσετε όλους τους ίδιους τύπους τιμών. Αυτή η μεταβλητή ονομάζεται ARRAY.
=> Επισκεφθείτε εδώ για να δείτε τη σειρά προπόνησης VBA για όλους
πώς να παίξετε αρχεία .bin στον υπολογιστή
Σε αυτό το σεμινάριο, θα μάθετε τι είναι ένας πίνακας VBA, μονοδιάστατες και δισδιάστατες συστοιχίες μαζί με τους διαφορετικούς τύπους συστοιχιών όπως το Fixed και το Dynamic. Θα κατανοήσουμε επίσης διάφορες μεθόδους συστοιχιών που χρησιμοποιούνται στο VBA.
Τι θα μάθετε:
Σειρά VBA
Οι πίνακες είναι ένα ειδικό είδος μεταβλητής που μπορεί να αποθηκεύσει πολλές τιμές του ίδιου τύπου δεδομένων.
Για παράδειγμα, εάν έχετε τα ονόματα των 100 υπαλλήλων, αντί να δημιουργήσετε 100 μεταβλητές συμβολοσειράς τύπου δεδομένων, μπορείτε απλώς να δημιουργήσετε μια μεταβλητή πίνακα συμβολοσειράς τύπου και να εκχωρήσετε 100 τιμές στην ίδια μεταβλητή πίνακα.
Μονοδιάστατη συστοιχία
Ένας πίνακας που έχει όλα τα στοιχεία σε μία γραμμή ή σε μία στήλη ονομάζεται μονοδιάστατος πίνακας. Η καταχώριση των ονομάτων όλων των μαθητών στην τάξη σε μία μόνο στήλη είναι ένα παράδειγμα μονοδιάστατου πίνακα. Δηλώνεται όπως φαίνεται παρακάτω.
Dim arrayname (κατώτερο προς UpperBound) ως DataType
Υπάρχουν πολλοί τρόποι για να δηλώσετε έναν πίνακα. Παρακάτω παρατίθενται μερικά παραδείγματα.
Παράδειγμα:
# 1) Dim MyArrayExample (0 έως 3) ως ακέραιος
Δημιουργεί έναν πίνακα με θέση 0,1,2,3 που θα δέχεται τιμές ακέραιου.
# 2) Dim MyArray2 (3) ως συμβολοσειρά
Από προεπιλογή από 0 έως 3 και δημιουργεί έναν πίνακα με θέση 0,1,2,3 που θα δέχεται τιμές String.
# 3) Dim MyArray2 (13 έως 15) ως διπλό
Δημιουργεί έναν πίνακα που ξεκινά από 13, δηλαδή 13, 14 και 15, και δέχεται διπλές τιμές. Αναφέραμε το κατώτερο όριο ως 13, οπότε ο πίνακας θα αρχίσει να εκχωρεί τιμές από τη θέση 13 αντί για το 0.
Ας δημιουργήσουμε έναν απλό κώδικα και κατανοήστε και τους 3 τρόπους δήλωσης πίνακα.
Σημείωση: Για να γράψετε VB Code Ανοίξτε το Microsoft Excel (οι υποστηριζόμενες εκδόσεις είναι το Excel 2007, 2010, 2013, 2016, 2019). Μεταβείτε στο Καρτέλα προγραμματιστή -> Visual Basic (Εναλλακτικά, χρησιμοποιήστε συντόμευση Alt + F11). Στον επεξεργαστή VB, κάντε κλικ στο Εισαγωγή -> Ενότητα και επικολλήστε τον παρακάτω κώδικα.
Εξετάστε την παρακάτω διαδικασία που δείχνει τους διαφορετικούς τύπους δηλώσεων.
Private Sub arrayExample1() Dim firstQuarter(0 To 2) As String ‘creates array with index 0,1,2 firstQuarter(0) = 'Jan' firstQuarter(1) = 'Feb' firstQuarter(2) = 'Mar' MsgBox 'First Quarter in calendar ' & ' ' & firstQuarter(0) & ' ' & firstQuarter(1) & ' ' & firstQuarter(2) End Sub Private Sub arrayExample2() Dim secondQuarter(2) As String ‘creates array with index 0,1,2 secondQuarter(0) = 'April' secondQuarter(1) = 'May' secondQuarter(2) = 'June' MsgBox 'Second Quarter in calendar ' & ' ' & secondQuarter(0) & ' ' & secondQuarter(1) & ' ' & secondQuarter(2) End Sub Private Sub arrayExample3() Dim thirdQuarter(13 To 15) As String ‘creates array with index 13,14,15 thirdQuarter(13) = 'July' thirdQuarter(14) = 'Aug' thirdQuarter(15) = 'Sep' MsgBox 'Third Quarter in calendar ' & ' ' & thirdQuarter(13) & ' ' & thirdQuarter(14) & ' ' & thirdQuarter(15) End SubΠατήστε F5 ή πατήστε το κουμπί εκτέλεσης στη γραμμή εργαλείων για να εκτελέσετε τον κώδικα.

Κανονική μεταβλητή Vs Array Variable
Γνωρίζουμε τώρα πώς λειτουργεί ένας μονοδιάστατος πίνακας. Ας πάρουμε λοιπόν λίγο χρόνο για να καταλάβουμε γιατί οι πίνακες είναι τόσο σημαντικοί στις γλώσσες προγραμματισμού.
Ας υποθέσουμε ότι πρέπει να εισάγετε το μισθό των 5 υπαλλήλων. Για να το επιτύχετε χρησιμοποιώντας μια κανονική μεταβλητή, πρέπει να δημιουργήσετε 5 μεταβλητές.
Public Sub RegularVariable() Dim shet As Worksheet Set shet = ThisWorkbook.Worksheets('Sheet1') ' Declare variable for each student Dim Emp1 As String Dim Emp2 As String Dim Emp3 As String Dim Emp4 As String Dim Emp5 As String ' Read student marks from cell Emp1 = shet.Range('A' & 2).Value Emp2 = shet.Range('A' & 3).Value Emp3 = shet.Range('A' & 4).Value Emp4 = shet.Range('A' & 5).Value Emp5 = shet.Range('A' & 6).Value ' Print student marks Debug.Print 'Emp Name' Debug.Print Emp1 Debug.Print Emp2 Debug.Print Emp3 Debug.Print Emp4 Debug.Print Emp5 End SubΑς δημιουργήσουμε τον ίδιο κώδικα χρησιμοποιώντας μια μεταβλητή Array.
Option Explicit Public Sub ArrayVarible() Dim shet As Worksheet Set shet = ThisWorkbook.Worksheets('Sheet1') Dim Employee(1 To 6) As String Dim i As Integer For i = 1 To 6 Employee(i) = shet.Range('A' & i).Value Debug.Print Employee(i) Next i End SubΕδώ, μόλις χρησιμοποιήσαμε μια μεταβλητή πίνακα που θα αποθηκεύσει όλα τα ονόματα των υπαλλήλων. Ας υποθέσουμε ότι πρέπει να προσθέσετε 100 ακόμη ονόματα υπαλλήλων και απλώς πρέπει να αλλάξετε το μέγεθος του πίνακα και δεν χρειάζεται να δημιουργήσετε μια νέα μεταβλητή.
Αυτό θα μειώσει τον αριθμό των γραμμών στον κώδικα και θα τον καταστήσει εύκολα κατανοητό και ευανάγνωστο.
Διάστατη συστοιχία
Ένας δισδιάστατος πίνακας έχει 2 ευρετήρια - ο πρώτος δείκτης θα αντιπροσωπεύει τις σειρές και ο 2ος δείκτης θα αντιπροσωπεύει τη στήλη. Έχει πολλές σειρές και στήλες και αντιπροσωπεύεται συνήθως σε μορφή πίνακα.
Η δήλωση ενός διμερούς πίνακα έχει ως εξής:
Dim ArrayName (FirstIndex To LastIndex, FirstIndex To LastIndex) ως DataType.
Εξετάστε ένα παράδειγμα αποθήκευσης βαθμολογιών 2 μαθητών που αποκτήθηκαν σε 3 μαθήματα. Έτσι, θα δημιουργήσουμε έναν δισδιάστατο πίνακα που θα περιλαμβάνει 2 σειρές και 3 στήλες.
Θα ξεκινήσουμε τον πίνακα από τη σειρά 1 στη σειρά 2 και τη στήλη 1 έως τη στήλη 3.
Sub Twodim() Dim totalMarks(1 To 2, 1 To 3) As Integer totalMarks(1, 1) = 23 totalMarks(2, 1) = 34 totalMarks(1, 2) = 33 totalMarks(2, 2) = 55 totalMarks(1, 3) = 45 totalMarks(2, 3) = 44 Msgbox “Total Marks in Row 2 and column 2 is “ &totalMarks(2,2) Msgbox “Total Marks in Row 1 and column 3 is “ &totalMarks(1,3) End SubΠατήστε F5 ή Πατήστε το κουμπί εκτέλεσης στη γραμμή εργαλείων για να εκτελέσετε τον κώδικα.
Σειρά 2 και στήλη 2

Σειρά 1 και στήλη 3

Διορθώθηκαν οι πίνακες
Οι σταθερές συστοιχίες που ονομάζονται επίσης στατικοί πίνακες έχουν σταθερό κατώτερο όριο και άνω όριο και αυτό το μέγεθος δεν μπορεί να αλλάξει κατά το χρόνο εκτέλεσης. Το μέγεθος του πίνακα καθορίζεται κατά τη δήλωση εντός των παρενθέσεων. Όλα τα παραπάνω παραδείγματα είναι Διορθωμένοι πίνακες όπως έχουμε αναφέρει το μέγεθος του κατά τη δήλωση.
Οι σταθερές συστοιχίες χρησιμοποιούνται συνήθως όταν είστε σίγουροι για το μέγεθος του πίνακα. Για παράδειγμα, τον αριθμό των ημερών σε μια εβδομάδα, μπορείτε να δημιουργήσετε έναν πίνακα με το κάτω όριο 0 και το άνω όριο 6 και να είστε βέβαιοι ότι δεν θα αλλάξετε ποτέ το μέγεθός του.
Δυναμικές συστοιχίες
Οι δυναμικές συστοιχίες μας επιτρέπουν να αλλάξουμε το μέγεθος του πίνακα κατά τη διάρκεια του χρόνου εκτέλεσης. Αυτά είναι χρήσιμα όταν δεν είστε σίγουροι για το μέγεθος του πίνακα. Ας υποθέσουμε ότι κατά την είσοδο στο κολέγιο, μπορεί να μην είστε σίγουροι για το πόσοι μαθητές θα λάβουν πραγματικά την εισαγωγή, οπότε δεν μπορείτε να προσδιορίσετε το μέγεθος κατά το σχεδιασμό ή τη δήλωση.
Η δήλωση ενός δυναμικού πίνακα είναι παρόμοια με μια στατική συστοιχία με κενές παρενθέσεις.
Dim Υπάλληλος () ως String
REDIM
Όταν θέλουμε να αλλάξουμε το μέγεθος που πρέπει να χρησιμοποιήσουμε REDIM , πρέπει να σημειώσουμε ότι το κάτω όριο δεν μπορεί να αλλάξει, μπορούμε να αλλάξουμε μόνο το άνω όριο του πίνακα.
Sub dynamicArray() Dim dynArray() As String Dim curdate As Date curdate = Now ReDim dynArray(2) ‘ Redim will help to change the array size during runtime dynArray(0) = 'John' dynArray(1) = 'Tom' dynArray(2) = 'Tonny' MsgBox 'Students Enrolled after ' & curdate & ' are “ & dynArray(0) & ', ' & dynArray(1) & ', ' & dynArray(2) End Sub 
Τώρα, γνωρίζουμε ότι μπορούμε να αλλάξουμε το μέγεθος του πίνακα κατά τη διάρκεια του χρόνου εκτέλεσης, επομένως μπορούμε να χρησιμοποιήσουμε τη δήλωση ReDim όποτε χρειαστεί να αυξήσουμε το εύρος ενός πίνακα. Ας προσπαθήσουμε να αυξήσουμε ξανά το μέγεθος του πίνακα και να προσθέσουμε ένα νέο όνομα μαθητή.
Sub RedimExample() Dim dynArray() As String Dim curdate As Date curdate = Now Dim size As Integer ReDim dynArray(2) dynArray(0) = 'John' dynArray(1) = 'Tom' dynArray(2) = 'Tonny' MsgBox 'Students Enrolled untill ' & curdate & ' are ' & dynArray(0) & ', ' & dynArray(1) & ', ' & dynArray(2) ReDim dynArray(3) ‘ Redim will reinitialise the array and destroy the old values dynArray(3) = 'John' MsgBox 'Students Enrolled untill ' & curdate & ' are ' & dynArray(0) & ', ' & dynArray(1) & ', ' & dynArray(2) & ' , ' & dynArray(3) End Sub 
Θα έχετε παρατηρήσει ότι το αποτέλεσμα δεν εμφανίζει τα ονόματα των μαθητών που έχουν προστεθεί προηγουμένως, δίνει μηδενική τιμή. Αυτό συμβαίνει επειδή η δήλωση Redim θα δημιουργήσει έναν νέο πίνακα με νέο μέγεθος και θα καταστρέψει τις παλιές τιμές.
ReDim Preserve
Η δήλωση Representerve μας βοηθά να ξεπεράσουμε τον περιορισμό του ReDim διατηρώντας τις παλιές τιμές και αυξάνοντας έτσι το μέγεθος του πίνακα.
Ας ξαναγράψουμε τον παραπάνω κώδικα χρησιμοποιώντας το ReDim Preserve.
Sub preserveExample() Dim dynArray() As String Dim curdate As Date curdate = Now Dim size As Integer ReDim dynArray(2) dynArray(0) = 'John' dynArray(1) = 'Tom' dynArray(2) = 'Tonny' MsgBox 'Students Enrolled untill ' & curdate & ' are ' & dynArray(0) & ', ' & dynArray(1) & ', ' & dynArray(2) ReDim preserve dynArray(3) ‘ Redim preserve will retain the old values dynArray(3) = 'John' MsgBox 'Students Enrolled untill ' & curdate & ' are ' & dynArray(0) & ', ' & dynArray(1) & ', ' & dynArray(2) & ' , ' & dynArray(3) End Sub 
Καθώς έχουμε χρησιμοποιήσει τη λέξη-κλειδί διατήρησης, οι τιμές που είχαν εισαχθεί προηγουμένως δεν χάνεται και η νέα τιμή προστίθεται με επιτυχία.
Παραλλαγή σειρά
Μέχρι τώρα έχουμε δει έναν πίνακα που δέχεται τον ίδιο τύπο τιμών. Τώρα ας δηλώσουμε τον πίνακα ως παραλλαγή και αποθηκεύστε τους διάφορους τύπους δεδομένων, όπως String, Date, Long, Integer σε έναν μόνο πίνακα.
Παράδειγμα:
Sub arrayVariant() Dim arrayData(3) As Variant arrayData(0) = 'Vikram Vikrant' arrayData(1) = 411234567890# arrayData(2) = 38 arrayData(3) = '06-09-1972' MsgBox 'Details of person ' & arrayData(0) & ' is ' & ' Phone No ' & arrayData(1) & ' ,Id ' & arrayData(2) & ' ,DOB ' & arrayData(3) End SubΜέθοδοι συστοιχίας VBA
Υπάρχουν αρκετές μέθοδοι στις συστοιχίες VBA που θα μας βοηθήσουν να εκτελέσουμε διαφορετικές λειτουργίες, όπως αναφέρεται παρακάτω.
| Σλ. Οχι | Ονομα | Σύνταξη | Περιγραφή |
|---|---|---|---|
| 7 | Συμμετοχή | Συμμετοχή (sourcearray, (οριοθέτης)) | Συνδέει πολλά substrings σε έναν πίνακα και επιστρέφει μια τιμή συμβολοσειράς. |
| 1 | Πίνακας | Array (δόλια) | Μετατρέπει μια κανονική παραλλαγή μεταβλητή σε Array. |
| δύο | Εξάλειψη | Διαγραφή ονόματος πίνακα | Χρησιμοποιείται για την επανεισαγωγή του πίνακα σταθερού μεγέθους και απελευθερώνει τη μνήμη για το Dynamic array. |
| 3 | Η IsArray | IsArray (όνομα μεταβλητού) | Καθορίζει εάν μια μεταβλητή είναι ένας πίνακας. |
| 4 | Lbound | LBound (ArrayName, (Διάσταση)) | Επιστρέφει τη χαμηλότερη συνδρομή ενός πίνακα. |
| 5 | Πάνω | UBound (ArrayName, (Διάσταση)) | Επιστρέφει την υψηλότερη συνδρομή ενός πίνακα. |
| 6 | Διαίρεση | Διαχωρισμός (έκφραση, (οριοθέτης, (όριο, (σύγκριση)))) | Διαιρεί μια συμβολοσειρά σε πολλά υποστρώματα και επιστρέφει έναν πίνακα που βασίζεται σε μηδέν. |
| 8 | Φίλτρο | Φίλτρο (sourcearray, match, (include, (membandingkan))) | Το φίλτρο θα μας επιτρέψει την αναζήτηση α καθορισμένη αντιστοίχιση από έναν πίνακα. |
Ας συζητήσουμε καθένα από αυτά λεπτομερώς με ένα παράδειγμα.
# 1) Σειρά
Ας δηλώσουμε μια κανονική μεταβλητή παραλλαγής και χρησιμοποιήστε τη ως πίνακα. Όταν θέλετε να αλλάξετε μια κανονική μεταβλητή παραλλαγής σε πίνακα, πρέπει να χρησιμοποιήσουμε ένα ΠΙΝΑΚΑΣ λειτουργία όπως φαίνεται στο παρακάτω παράδειγμα.
Οι συναρτήσεις Array δέχονται ένα όρισμα που περιέχει τιμές διαχωρισμένες με κόμμα. Αυτές οι τιμές εκχωρούνται ως στοιχείο του πίνακα.
Sub variantArray() Dim varData As Variant varData = Array('Mon Bel', '+61 112334123', 567, '06-09-1972') MsgBox 'Details of person ' & varData(0) & ' is ' & ' Phone No ' & varData(1) & ' ,Id ' & varData(2) & ' ,DOB ' & varData(3) End Sub 
Πρέπει να προσδιορίσετε μια μεταβλητή πίνακα χρησιμοποιώντας ένα ευρετήριο, επομένως στο παραπάνω παράδειγμα, οι τιμές ανακτώνται ως varData (0) varData (2) varData (3).
# 2) Διαγραφή
Αυτή η λειτουργία θα διαγράψει όλες τις τιμές που έχουν εισαχθεί για έναν πίνακα σταθερού μεγέθους και θα ελευθερώσει το χώρο μνήμης για έναν δυναμικό πίνακα.
Σύνταξη: Διαγραφή ονόματος πίνακα
Το Erase έχει διαφορετική συμπεριφορά για διαφορετικούς τύπους δεδομένων όπως δίνεται παρακάτω.
- Για ένα σταθερό αριθμητικό: Όλες οι τιμές επαναφέρονται στο μηδέν.
- Για έναν σταθερό τύπο δεδομένων συμβολοσειράς: Όλες οι τιμές επαναφέρονται στο μηδέν μήκος.
- Για δυναμικό πίνακα: Απελευθερώνει τη μνήμη που χρησιμοποιείται από τον πίνακα.
Παράδειγμα:
Sub eraseExample() Dim NumArray(3) As Integer Dim decArray(2) As Double Dim strArray(2) As String NumArray(0) = 12345 decArray(1) = 34.5 strArray(1) = 'Erase Function' Dim DynaArray() ReDim DynaArray(3) MsgBox ' Values before Erase ' & (NumArray(0)) & ',' & (decArray(1)) & ' , ' & (strArray(1)) Erase NumArray Erase decArray Erase strArray Erase DynaArray ' Free the memory ' All values are erased. MsgBox ' Values after Erase ' & NumArray(0) & ',' & decArray(1) & ' , ' & strArray(1) End SubΑποτέλεσμα πριν χρησιμοποιήσετε τη λειτουργία Διαγραφή

Αποτέλεσμα μετά τη χρήση της Διαγραφής

# 3) IsArray
Αυτή η συνάρτηση χρησιμοποιείται για να προσδιορίσει εάν η δεδομένη μεταβλητή εισόδου είναι πίνακας ή όχι. Επιστρέφει true αν η μεταβλητή που έχει εισαχθεί είναι true, αλλιώς επιστρέφει false.
Σύνταξη: IsArray (όνομα μεταβλητού)
Παράδειγμα:
Sub isArrayTest() Dim arr1, arr2 As Variant arr1 = Array('Jan', 'Feb', 'Mar') arr2 = '12345' MsgBox ('Is arr1 an Array : ' & IsArray(arr1)) MsgBox ('Is arr2 an Array : ' & IsArray(arr2)) EndΤο αποτέλεσμα από το πρώτο Msgbox

εαρινές τηλεοπτικές συνεντεύξεις και απαντήσεις για έμπειρους
Το αποτέλεσμα από το δεύτερο msgbox

# 4) Lbound
Επιστρέφει το χαμηλότερο δείκτη του πίνακα που καθορίζεται ως όρισμα για τη συνάρτηση Lbound.
Σύνταξη: LBound (ArrayName, (Dimension))
Το ArrayName είναι το όνομα του πίνακα.
Η διάσταση είναι η προαιρετική ακέραια τιμή, εάν ο πίνακας έχει πολλές διαστάσεις, τότε μπορείτε να καθορίσετε σε ποια διάσταση θέλετε να προσδιορίσετε το Lbound.
Παράδειγμα:
Sub lboundTest() Dim Result1, Result2, Result3 Dim ArrayValue(1 To 10, 5 To 15, 10 To 20) ' Declare array variables. Dim Arraywithoutlbound(10) Result1 = LBound(ArrayValue, 1) ' Returns 1. Result2 = LBound(ArrayValue, 3) ' Returns 10. Result3 = LBound(Arraywithoutlbound) MsgBox 'Lowest subscript in first array ' & Result1 & ' lowest subscript in 3rd array ' & Result2 & ' Lowest subscript in Arraywithoutlbound ' & Result3 End Sub# 5) Υπερβολικά
Επιστρέφει τον άνω δείκτη του πίνακα που καθορίζεται ως όρισμα στη συνάρτηση Ubound.
Σύνταξη: UBound (ArrayName, (Dimension))
Το ArrayName είναι το όνομα του πίνακα.
Η διάσταση είναι η προαιρετική ακέραια τιμή, εάν ο πίνακας έχει πολλές διαστάσεις, τότε μπορείτε να καθορίσετε ποια διάσταση θέλετε να προσδιορίσετε το Ubound.
Παράδειγμα:
Sub UboundTest() Dim Result1, Result2, Result3 Dim ArrayValue(1 To 10, 5 To 15, 10 To 20) ' Declare array variables. Dim ArraywithoutUbound(10) Result1 = UBound(ArrayValue, 1) Result2 = UBound(ArrayValue, 3) Result3 = UBound(ArraywithoutUbound) MsgBox 'Lowest subscript in first array ' & Result1 & ' lowest subscript in 3rd array ' & Result2 & ' Lowest subscript in Arraywithoutlbound ' & Result3 End Sub 
# 6) Σπλιτ
Επιστρέφει έναν πίνακα με έναν αριθμό υποστρωμάτων που προέρχονται από τη δεδομένη ολόκληρη συμβολοσειρά.
Σύνταξη: Διαχωρισμός (έκφραση, (οριοθέτης, (όριο, (σύγκριση))))
- Εκφραση: Αυτή είναι ολόκληρη η συμβολοσειρά που θα χρησιμοποιηθεί για την παραγωγή υποστρώσεων.
- Οριοθέτης: Χρησιμοποιώντας τον καθορισμένο οριοθέτη, θα δημιουργηθούν υποστρώματα. Εάν αυτό δεν αναφέρεται, ο χώρος θεωρείται οριοθέτης.
- Οριο: Αριθμός υποστρωμάτων που θα επιστραφούν.
- Συγκρίνω: Αφού δημιουργηθεί το υπόστρωμα, μπορείτε να χρησιμοποιήσετε διαφορετικές επιλογές σύγκρισης για να δοκιμάσετε το αποτέλεσμα.
Παράδειγμα: Στο παρακάτω παράδειγμα, χρησιμοποιούμε οριοθέτη ως - και περιορίζουμε ως 3.
Ως εκ τούτου, η συνάρτηση split θα διαχωρίσει ολόκληρη τη συμβολοσειρά σε υπόστρωμα με βάση τον οριοθέτη. Ωστόσο, έχουμε αναφέρει επίσης το όριο ως 3, έτσι δεν θα σχηματιστούν υποστρώματα μετά το όριο 3. Έτσι, το τελευταίο οριοθέτης - θα παραλειφθεί.
Sub splitExample() Dim MyString As String Dim Result() As String Dim DisplayText As String MyString = 'This is the example for-VBA-Split-Function' Result = Split(MyString, '-',3) MsgBox Result(0) & vbNewLine & Result(1) & vbNewLine & Result(2) & vbNewLine & Result(3) End Sub# 7) Εγγραφείτε
Αυτό είναι ακριβώς το αντίστροφο του διαχωρισμού, το Join θα δημιουργήσει μια συμβολοσειρά συνδυάζοντας πολλά substrings.
Σύνταξη: Συμμετοχή (sourcearray, (οριοθέτης))
Sourcearray: Μονοδιάστατη σειρά συμβολοσειρών που θέλετε να ενώσετε σε μία.
Οριοθέτης: Ο καθορισμένος οριοθέτης θα προστεθεί μετά από κάθε συμβολοσειρά κατά τη σύνδεση.
Παράδειγμα:
Sub joinExample() Dim Result As String Dim dirarray(0 To 2) As String dirarray(0) = 'D:' dirarray(1) = 'SoftwareTestingHelp' dirarray(2) = 'Arrays' Result = Join(dirarray, '') MsgBox 'Date after joining ' & Result End SubΚαι οι 3 τιμές ενώνονται και τοποθετείται μεταξύ κάθε λέξης, όπως έχουμε αναφέρει ως οριοθέτης.

# 8) Φίλτρο
Το φίλτρο θα μας επιτρέψει να αναζητήσουμε μια συγκεκριμένη αντιστοίχιση από έναν πίνακα. Με βάση τα κριτήρια του φίλτρου, θα επιστραφεί το υποσύνολο ενός πίνακα συμβολοσειρών.
Σύνταξη: Φίλτρο (συστοιχία πηγής, αντιστοίχιση, (συμπερίληψη, (σύγκριση)))
Παράδειγμα:
Sub filterExample() Dim Mystring As Variant Mystring = Array('Software Testing', 'Testing help', 'Software help') filterString = Filter(Mystring, 'help') MsgBox 'Found ' & UBound(Mystring) - LBound(Mystring) + 1 & ' words matching the criteria ' End SubΑυτό το παράδειγμα θα αναζητήσει τη λέξη 'βοήθεια' σε όλες τις συμβολοσειρές πίνακα χρησιμοποιώντας τη λειτουργία φίλτρου.

Συχνές Ερωτήσεις
Ε # 1) Πώς να αποκτήσετε το μήκος ενός πίνακα στο VBA;
Απάντηση: Για να πάρουμε το μήκος ενός πίνακα, χρησιμοποιούμε τη συνάρτηση Ubound. Αυτή η συνάρτηση θα μας δώσει μια ανώτερη συνδρομή ενός συγκεκριμένου πίνακα.
Q # 2) Πώς να δηλώσετε έναν πίνακα στο VBA;
Απάντηση: Ο μονοδιάστατος πίνακας δηλώνεται όπως φαίνεται παρακάτω.
Dim arrayname (κατώτερο προς UpperBound) ως DataType
Παράδειγμα: Dim Myarray (0 έως 2) ως ακέραιος
Μια δισδιάστατη συστοιχία δηλώνεται όπως φαίνεται παρακάτω.
Dim ArrayName (FirstIndex To LastIndex, FirstIndex To LastIndex) ως DataType.
Παράδειγμα: Αχνά σημάδια (1 έως 3, 0 έως 2) ως ακέραιος
Q # 3) Πώς να μετατρέψετε το Range σε Array;
Απάντηση: Μπορούμε να χρησιμοποιήσουμε τη λειτουργία Transpose για να μετατρέψουμε το εύρος σε πίνακα. Αυτός ο κωδικός θα δημιουργήσει Mys (10)
Sub Example() Dim Mys As Variant Mys = Application.Transpose(Range('A1:A10')) End Sub 
Q # 4) Τι είναι μια παραλλαγή πίνακα στο VBA;
Απάντηση: Ένας πίνακας παραλλαγών θα δεχτεί όλα τα είδη τύπων δεδομένων για το ευρετήριό του, δηλαδή μπορείτε να αποθηκεύσετε διαφορετικούς τύπους τιμών σε έναν πίνακα.
Παράδειγμα:
Dim arrayData (3) ως παραλλαγή
arrayData (0) = 'Vikas Vipal'
arrayData (1) = 411234567890 #
Q # 5) Τι είναι μια βασική δήλωση επιλογής;
Απάντηση: Αυτό χρησιμοποιείται για να δηλώσει το χαμηλότερο δείκτη ενός πίνακα και χρησιμοποιείται στην αρχή μιας ενότητας. Από προεπιλογή, η χαμηλότερη συνδρομή είναι 0 εάν δηλώσετε την Επιλογή Βάσης 1 σε επίπεδο ενότητας, τότε για όλες τις συστοιχίες η προεπιλεγμένη χαμηλότερη συνδρομή θα είναι 1
συμπέρασμα
Σε αυτό το σεμινάριο, μάθαμε πώς χρησιμοποιούνται οι συστοιχίες στο VBA και έχουμε δει πώς οι συστοιχίες είναι διαφορετικές από μια κανονική μεταβλητή. Εξερευνήσαμε μονοδιάστατες και δισδιάστατες συστοιχίες με παραδείγματα. Συζητήσαμε επίσης σταθερές και δυναμικές συστοιχίες.
Οι τρόποι για να αλλάξετε το μέγεθος του πίνακα κατά τη διάρκεια του χρόνου εκτέλεσης και επίσης να διατηρήσετε τις τιμές χρησιμοποιώντας το redim preserve συζητήθηκαν με παραδείγματα. Τέλος, μάθαμε μεθόδους Array που θα μας βοηθήσουν στην εκτέλεση πολλών λειτουργιών.
=> Ελέγξτε ΟΛΑ τα εκπαιδευτικά προγράμματα VBA εδώ
Συνιστώμενη ανάγνωση
- Tutorial Excel VBA - Εισαγωγή στο VBA στο Excel
- Τύποι δεδομένων VBA - Τύποι αριθμητικών και μη αριθμητικών δεδομένων στο VBA
- Μεταβλητές VBA και προαιρετική επιλογή στο VBA
- Reverse An Array In Java - 3 μέθοδοι με παραδείγματα
- Εκμάθηση μήκους σειράς Java με παραδείγματα κώδικα
- Jagged Array In Java - Εκμάθηση με παραδείγματα
- Τύποι δεδομένων Array - int Array, Double array, Array of Strings κ.λπ.
- String Array C ++: Υλοποίηση & αναπαράσταση με παραδείγματα


