VBA Declare Array | Πώς να δηλώσετε πίνακες στο VBA;

Excel VBA Declare Array

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

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

Ο πίνακας είναι ένα είδος μεταβλητής που μπορεί να διατηρήσει περισσότερες από μία τιμές, σε αντίθεση με τις κανονικές μεταβλητές που μπορούν να διατηρούν μόνο μία τιμή τη φορά. Ο πίνακας είναι μια προηγμένη έκδοση δήλωσης μεταβλητών στο VBA. Για παράδειγμα, φανταστείτε μια κατάσταση όπου θέλετε να αντιστοιχίσετε 5 ονόματα μαθητών σε μεταβλητές και στη γενική πρακτική, δηλώνουμε πέντε μεταβλητές και για τις πέντε μεταβλητές που εκχωρούμε μεμονωμένα ονόματα μαθητών μία προς μία, παρακάτω είναι το παράδειγμα του ίδιου κώδικα.

Κώδικας:

 Sub Array_Example () Dim Student1 As String Dim Student2 As String Dim Student3 As String Dim Student4 As String Dim Student5 As String End Sub 

Αντί να δηλώσουμε τόσες πολλές μεταβλητές, τι γίνεται με την ιδέα της δήλωσης ενός μεμονωμένου πίνακα μεταβλητών που μπορεί να περιέχει όλα τα ονόματα των μαθητών

Ναι, αυτό είναι δυνατό δηλώνοντας τον πίνακα στο VBA.

Παραδείγματα

Μπορείτε να κάνετε λήψη αυτού του προτύπου VBA Declare Array Excel εδώ - Πρότυπο VBA Declare Array Excel

Παράδειγμα # 1

Για να δηλώσουμε ότι δεν χρειάζεται να κάνουμε κάποια ειδική κωδικοποίηση VBA, αλλά πρέπει να ακολουθήσουμε απλές έννοιες.

Αρχικά, ξεκινήστε την υποδιαδικασία.

Κώδικας:

 Sub Array_Example () End Sub 

Τώρα, ως συνήθως, δηλώστε μια μεταβλητή ως συμβολοσειρά.

Κώδικας:

 Sub Array_Example () Dim Student ως συμβολοσειρά End Sub 

Μόλις δηλωθεί η μεταβλητή, βεβαιωθείτε ότι πόσες τιμές πρέπει να περιέχει. Σε αυτήν την περίπτωση, θέλω να αποθηκεύσω πέντε ονόματα μαθητών, οπότε τώρα πρέπει να διορθώσουμε το μέγεθος του πίνακα, δηλαδή 1 έως 5. Παρέχετε το ίδιο πράγμα στη μεταβλητή σε αγκύλες.

Κώδικας:

 Sub Array_Example () Αχνός μαθητής (1 έως 5) 

Τώρα για αυτήν τη μεμονωμένη μεταβλητή, μπορούμε να αποθηκεύσουμε 5 ονόματα μαθητών.

Κώδικας:

 Sub Array_Example () Dim Student (1 to 5) As String Student (1) = "John" Student (2) = "Peter" Student (3) = "Ricky" Student (4) = "Michael" Student (5) = "Άντερσον" End Sub 

Δείτε πόσες γραμμές έχουμε μειώσει, δηλώνοντας τη μεταβλητή ως πίνακα. Αυτός είναι ένας τρόπος να το κάνουμε, μπορούμε ακόμα να συντομεύσουμε αυτόν τον κώδικα, περικλείοντάς τον εντός των βρόχων στο VBA.

Τώρα για παράδειγμα, τα ίδια πέντε ονόματα που έχω στα κελιά του φύλλου εργασίας

Τώρα θέλω να δείξω αυτούς τους αριθμούς στο πλαίσιο μηνυμάτων στο VBA, εντάξει ας δηλώσουμε μια ακόμη μεταβλητή για βρόχους ως τύπο δεδομένων ακέραιου.

Κώδικας:

 Sub Array_Example () Dim Student (1 to 5) As String Dim K As Integer End Sub 

Ως συνήθως, διατήρησα τη μεταβλητή πίνακα ως μέγεθος 1 έως 5.

Τώρα ανοίξτε ΓΙΑ ΕΠΟΜΕΝΟ βρόχο στο VBA και αφού έχουμε πέντε ονόματα εισάγετε το όριο ως 1 έως 5.

Κώδικας:

 Sub Array_Example () Dim Student (1 to 5) As String Dim K As Integer For K = 1 to 5 Next K End Sub 

Για να αντιστοιχίσουμε τιμές σε μεταβλητή πίνακα, δεν χρειάζεται να ακολουθήσουμε τον προηγούμενο τρόπο εμφάνισης του Student (1), του Student (2) όπως αυτό για τη μεταβλητή "k" βρόχων προσφοράς θέσεων αριθμών.

Κώδικας:

 Sub Array_Example () Dim Student (1 to 5) As String Dim K As Integer For K = 1 to 5 Student (K) = Next K End Sub 

Για αυτήν τη μεταβλητή πίνακα χρειαζόμαστε τις τιμές από το φύλλο εργασίας, οπότε χρησιμοποιώντας την ιδιότητα CELLS λάβετε τις τιμές από το φύλλο εργασίας.

Κώδικας:

 Sub Array_Example () Dim Student (1 to 5) As String Dim K As Integer For K = 1 to 5 Student (K) = Cells (K, 1). Value Next K End Sub 

Τώρα μέσω του πλαισίου μηνυμάτων δείξτε την τιμή της μεταβλητής πίνακα.

Κώδικας:

 Sub Array_Example () Dim Student (1 to 5) As String Dim K As Integer For K = 1 to 5 Student (K) = Cells (K, 1). Value MsgBox Student (K) Next K End Sub 

Τώρα εκτελέστε τον κωδικό, στο πλαίσιο μηνύματος, θα δούμε το όνομα. Πιέστε ξανά το Ok για να δείτε το δεύτερο όνομα. Έτσι πατώντας το Ok, μπορούμε να δούμε και τα πέντε ονόματα.

Παράδειγμα # 2 - Δύο διαστάσεων πίνακες

Έχουμε δει παραπάνω πώς λειτουργεί ο πίνακας, τώρα θα δούμε σε διαστάσεις πίνακες. Οι δισδιάστατες συστοιχίες επικεντρώνονται τόσο στις σειρές όσο και στις στήλες.

Στο παραπάνω παράδειγμα, έχουμε προσδιορίσει το μέγεθος του πίνακα ως 1 έως 5, είτε επικεντρώνεται σε σειρές είτε σε στήλες.

Με τη χρήση δισδιάστατων συστοιχιών μπορούμε να επικεντρωθούμε τόσο στις σειρές όσο και στις στήλες. Για αυτό, πρέπει να κλείσουμε δύο βρόχους.

Κατ 'αρχάς, ορίστε τη μεταβλητή και αργότερα θα αποφασίσουμε για το μέγεθος του πίνακα.

Κώδικας:

 Sub Two_Array_Example () Αχνός μαθητής ως συμβολοσειρά End Sub 

Αρχικά, αποφασίστε το μέγεθος της σειράς και μετά αποφασίστε το μήκος της στήλης.

Κώδικας:

 Sub Two_Array_Example () Dim Student (1 έως 5, 1 έως 3) ως String End Sub 

Για αυτό, έχω δομήσει τα δεδομένα για το όνομα, τα σημάδια και την κατάσταση του μαθητή.

Τώρα επιστρέψτε στο παράθυρο κωδικοποίησης.

Δηλώστε δύο ακόμη μεταβλητές για έναν βρόχο.

Κώδικας:

 Sub Two_Array_Example () Dim Student (1 to 5, 1 to 3) As String Dim K As Integer, J As Integer End Sub 

Τώρα κλείστε το βρόχο όπως φαίνεται παρακάτω.

Κώδικας:

 Sub Two_Array_Example () Dim Student (1 to 5, 1 to 3) As String Dim k As Integer, J As Integer For k = 1 to 5 For J = 1 to 3 Worksheets ("Λίστα μαθητών"). Επιλέξτε Student (k, J) = Κελιά (k, J). Φύλλα εργασίας τιμής ("Copy Sheet"). Επιλέξτε Cells (k, J). Value = Student (k, J) Next J Next k End Sub 

Αυτό που θα κάνει είναι να αντιγράψει τα δεδομένα από το φύλλο «Λίστα μαθητών» και να επικολλήσει στο «Αντιγραφή φύλλου».

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

  • Ο πίνακας είναι μια τεράστια ιδέα, αυτό είναι απλώς ένα εισαγωγικό μέρος.
  • Χρειάζεστε προηγμένες δεξιότητες κωδικοποίησης για να κατανοήσετε τη δήλωση πίνακα.
  • Όσο περισσότερο χρησιμοποιείτε πίνακες στον κωδικό σας, τόσο περισσότερο θα το συνηθίσετε.

$config[zx-auto] not found$config[zx-overlay] not found