Πίνακας περιεχομένων:
- Δηλώνοντας συστοιχίες
- στα προηγούμενα παραδείγματα είναι όλες οι μονοδιάστατες συστοιχίες. Σκεφτείτε τις μονοδιάστατες συστοιχίες ως μία γραμμή αξιών. Οι πίνακες που δημιουργείτε στη VBA μπορούν να έχουν έως και 60 διαστάσεις - αν και σπάνια χρειάζεστε περισσότερες από δύο ή τρεις διαστάσεις σε έναν πίνακα. Το ακόλουθο παράδειγμα δηλώνει έναν πίνακα 81 με δύο διαστάσεις:
- Μπορείτε επίσης να δημιουργήσετε δυναμικές
Βίντεο: Εφαρμογή Εκδηλώσεων Γάμων -Διαχείριση Λίστας Καλεσμένων- Προγραμματισμός Γάμου & Γαμήλιων Δεξιώσεων 2025
Οι περισσότερες γλώσσες προγραμματισμού υποστηρίζουν συστοιχίες, συμπεριλαμβανομένης της VBA. Ένας πίνακας είναι μια ομάδα μεταβλητών που μοιράζονται ένα όνομα. Αναφέρετε μια συγκεκριμένη μεταβλητή στον πίνακα χρησιμοποιώντας το όνομα πίνακα και έναν αριθμό ευρετηρίου σε παρενθέσεις. Για παράδειγμα, μπορείτε να ορίσετε μια σειρά από 12 μεταβλητές συμβολοσειράς για να κρατήσετε τα ονόματα των μηνών του έτους. Αν ονομάσετε τη συστοιχία MonthNames , μπορείτε να ανατρέξετε στο πρώτο στοιχείο του πίνακα ως MonthNames (1), το δεύτερο στοιχείο ως MonthNames (2) κ.ο.κ.
Δηλώνοντας συστοιχίες
Για να μπορέσετε να χρησιμοποιήσετε έναν πίνακα, πρέπει να το δηλώσετε. Χωρίς εξαιρέσεις. Σε αντίθεση με τις κανονικές μεταβλητές, η VBA είναι πολύ αυστηρή σχετικά με αυτόν τον κανόνα. Μπορείτε να δηλώσετε έναν πίνακα με μια Dim ή Δημόσια δήλωση, ακριβώς όπως δηλώνετε μια κανονική μεταβλητή. Ωστόσο, πρέπει επίσης να καθορίσετε τον αριθμό των στοιχείων στον πίνακα. Το κάνετε αυτό καθορίζοντας τον πρώτο αριθμό ευρετηρίου, τη λέξη κλειδί To και τον τελευταίο αριθμό ευρετηρίου - όλες τις εσωτερικές παρενθέσεις. Το παρακάτω παράδειγμα δείχνει πώς να δηλώσετε έναν πίνακα 100 ακεραίων:
Όταν δηλώνετε έναν πίνακα, μπορείτε να επιλέξετε να καθορίσετε μόνο το ανώτερο ευρετήριο. Εάν παραλείψετε το κατώτερο ευρετήριο, η VBA υποθέτει ότι είναι 0. Συνεπώς, και οι δύο ακόλουθες δηλώσεις δηλώνουν τον ίδιο πίνακα 101 στοιχείων:
Dim MyArray (0 έως 100) Ως Ακέραιος Dim MyArray (100) Ως ακέραιο
Αν θέλετε το VBA να υποθέσει ότι το 1 (και όχι το 0) είναι το κατώτερο ευρετήριο των συστοιχιών σας, συμπεριλάβετε την ακόλουθη δήλωση στην ενότητα Δηλώσεις στην κορυφή της ενότητας:
Αυτή η δήλωση υποχρεώνει τη VBA να χρησιμοποιήσει 1 ως τον πρώτο αριθμό ευρετηρίου για πίνακες που δηλώνουν μόνο τον ανώτερο δείκτη. Εάν αυτή η δήλωση υπάρχει, οι ακόλουθες δηλώσεις είναι ίδιες, δηλώνοντας ταυτόχρονα έναν πίνακα 100 στοιχείων:
Dim MyArray (1 έως 100) Ως Αύτοχος Dim MyArray (100) Ως ακέραιο
Πολυδιάστατες συστοιχίες
στα προηγούμενα παραδείγματα είναι όλες οι μονοδιάστατες συστοιχίες. Σκεφτείτε τις μονοδιάστατες συστοιχίες ως μία γραμμή αξιών. Οι πίνακες που δημιουργείτε στη VBA μπορούν να έχουν έως και 60 διαστάσεις - αν και σπάνια χρειάζεστε περισσότερες από δύο ή τρεις διαστάσεις σε έναν πίνακα. Το ακόλουθο παράδειγμα δηλώνει έναν πίνακα 81 με δύο διαστάσεις:
Dim MyArray (1 έως 9, 1 έως 9) Ως ακέραιο
Μπορείτε να σκεφτείτε αυτό το πίνακα ως καταλαμβάνει μια μήτρα 9 x 9 - ιδανική για αποθήκευση όλων αριθμούς σε ένα παζλ Sudoku.
Για να αναφερθείτε σε ένα συγκεκριμένο στοιχείο σε αυτόν τον πίνακα, πρέπει να ορίσετε δύο αριθμούς ευρετηρίου (παρόμοιοι με τη "σειρά" του και τη "στήλη" του στη μήτρα).Το παρακάτω παράδειγμα δείχνει πώς μπορείτε να αντιστοιχίσετε μια τιμή σε ένα στοιχείο σε αυτήν τη συστοιχία:
MyArray (3, 4) = 125
Αυτή η εντολή αποδίδει μια τιμή σε ένα μόνο στοιχείο στον πίνακα. Εάν σκέφτεστε τη συστοιχία από άποψη μήτρας 9 x 9, αυτό αντιστοιχεί στο 125 στο στοιχείο που βρίσκεται στην τρίτη σειρά και στην τέταρτη στήλη της μήτρας.
Ορίστε πώς να δηλώσετε μια τρισδιάστατη διάταξη με 1, 000 στοιχεία:
Dim My3DArray (1 έως 10, 1 έως 10, 1 έως 10) Ως Ακέραιος
Μπορείτε να σκεφτείτε ένα τρισδιάστατο σειρά ως κύβος. Η απεικόνιση μιας σειράς από περισσότερες από τρεις διαστάσεις είναι πιο δύσκολη.
Δυναμικές συστοιχίες
Μπορείτε επίσης να δημιουργήσετε δυναμικές
συστοιχίες. Μια δυναμική συστοιχία δεν έχει προκαθορισμένο αριθμό στοιχείων. Δηλώστε έναν δυναμικό πίνακα με ένα κενό σύνολο παρενθέσεων: Dim MyArray () Ως ακέραιο Προτού χρησιμοποιήσετε αυτόν τον πίνακα, πρέπει να χρησιμοποιήσετε την εντολή ReDim για να πείτε στο VBA πόσα στοιχεία διαθέτει η διάταξη. Συνήθως, ο αριθμός των στοιχείων στη συστοιχία καθορίζεται κατά την εκτέλεσή του. Μπορείτε να χρησιμοποιήσετε τη δήλωση ReDim πολλές φορές, αλλάζοντας το μέγεθος της συστοιχίας τόσο συχνά όσο χρειάζεται. Το παρακάτω παράδειγμα δείχνει πώς να αλλάξετε τον αριθμό των στοιχείων σε έναν δυναμικό πίνακα. Υποθέτει ότι η μεταβλητή NumElements περιέχει μια τιμή, την οποία υπολογίζει ο κωδικός σας.
ReDim MyArray (1 σε αριθμητικά στοιχεία)
Όταν αναδιπλώνετε έναν πίνακα χρησιμοποιώντας το ReDim, σβήνετε τυχόν τιμές που είναι αποθηκευμένες στα στοιχεία των συστοιχιών. Μπορείτε να αποφύγετε την καταστροφή των παλαιών τιμών χρησιμοποιώντας τη λέξη-κλειδί Διατηρήστε. Το παρακάτω παράδειγμα δείχνει πώς μπορείτε να διατηρήσετε τις τιμές ενός πίνακα όταν κάνετε επαναδιαμόρφωση του πίνακα:
ReDim Διατηρήστε το MyArray (1 σε αριθμητικά στοιχεία)
Αν το MyArray διαθέτει τώρα δέκα στοιχεία και εκτελείτε την προηγούμενη εντολή με Αριθμητικά στοιχεία ίσο με 12, τα πρώτα δέκα στοιχεία παραμένουν άθικτα και η συστοιχία έχει χώρο για δύο επιπλέον στοιχεία (μέχρι τον αριθμό που περιέχεται στις μεταβλητές Αριθμοί). Εάν τα νούμερα ισούνται με 7, ωστόσο, τα πρώτα επτά στοιχεία διατηρούνται, αλλά τα υπόλοιπα τρία στοιχεία πληρούν την κατάστασή τους.