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.

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

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

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

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

Κώδικας:

Sub Array_Example () End Sub

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

Κώδικας:

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

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

Κώδικας:

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

Τώρα για αυτήν τη μεμονωμένη μεταβλητή, μπορούμε να αποθηκεύσουμε 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 - Δύο διαστάσεων πίνακες

We have seen above how the array works, now we will see to dimensional arrays. Two-dimensional arrays concentrate on both rows and columns.

In the above example, we have determined the array’s size as 1 to 5; this either concentrates on rows or columns.

By using two-dimensional arrays, we can concentrate on both rows and columns. For this, we need to enclose two loops.

First, define the variable then late we will decide about the size of the array.

Code:

Sub Two_Array_Example() Dim Student As String End Sub

First, decide row size then decide the column length.

Code:

Sub Two_Array_Example() Dim Student(1 To 5, 1 To 3) As String End Sub

For this, I have structured the data for student names, marks, and grade status.

Now come back to the coding window.

Declare two more variables for a loop.

Code:

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

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

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

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

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