Πίνακες VBA Excel: Τύποι & Πώς να τους χρησιμοποιήσετε με παραδείγματα

⚡ Έξυπνη Σύνοψη

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

  • 📦 Έννοια πίνακα: Μια μοναδική ονομαστική θέση μνήμης που περιέχει πολλές τιμές του ίδιου τύπου δεδομένων, χωρισμένες από ένα ευρετήριο.
  • 🎯 Πλεονεκτήματα: Οι πίνακες ομαδοποιούν σχετικά δεδομένα, μειώνουν τον αριθμό των μεταβλητών και κάνουν την ανάκτηση και ταξινόμηση δεδομένων πιο γρήγορη.
  • 📌 Στατικός πίνακας: Δηλώνεται με σταθερό μέγεθος, για παράδειγμα Dim ArrayMonth(12) As String, όταν ο αριθμός των στοιχείων είναι γνωστός.
  • 🔄 Δυναμικός πίνακας: Δηλώθηκε κενό με την Dim ArrayMonth() και το μέγεθος άλλαξε αργότερα χρησιμοποιώντας το ReDim όταν ο αριθμός των στοιχείων είναι άγνωστος.
  • 📐 Διαστάσεις: Ένας πίνακας χρησιμοποιεί ένα, δύο ή περισσότερα ευρετήρια για να μοντελοποιήσει μεμονωμένες λίστες, πίνακες ή δεδομένα πολλαπλών επιπέδων.
  • 🧪 Παράδειγμα εργασίας: Ένα κουμπί εντολής φορτώνει τέσσερα ονόματα ποτών από έναν πίνακα σε κελιά του φύλλου εργασίας χρησιμοποιώντας το Sheet1.Cells.

Πίνακες VBA Excel

Τι είναι το VBA Array;

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

Χρησιμοποιώντας έναν πίνακα, μπορείτε να ανατρέξετε στις σχετικές τιμές με το ίδιο όνομα. Μπορείτε να χρησιμοποιήσετε ένα ευρετήριο ή έναν δείκτη για να τα ξεχωρίσετε. Οι μεμονωμένες τιμές αναφέρονται ως στοιχεία του πίνακα VBA του Excel. Είναι συνεχόμενα από τον δείκτη 0 έως την υψηλότερη τιμή του δείκτη.

Αυτό το σεμινάριο προϋποθέτει ότι χρησιμοποιείτε Microsoft Excel έκδοση 2013. Οι γνώσεις εξακολουθούν να ισχύουν για άλλες εκδόσεις του Microsoft Excel επίσης.

Ποια είναι τα πλεονεκτήματα των συστοιχιών;

Πριν γράψετε κώδικα πίνακα, είναι χρήσιμο να κατανοήσετε γιατί αξίζει να χρησιμοποιείτε πίνακες. Ακολουθούν ορισμένα από τα οφέλη που προσφέρει η συνάρτηση πίνακα VBA.

  1. Ομαδοποιήστε λογικά σχετικά δεδομένα μαζί – ας υποθέσουμε ότι θέλετε να αποθηκεύσετε μια λίστα μαθητών. Μπορείτε να χρησιμοποιήσετε μια μεταβλητή μεμονωμένου πίνακα που έχει ξεχωριστές τοποθεσίες για κατηγορίες μαθητών, π.χ. νηπιαγωγείο, δημοτικό, γυμνάσιο, γυμνάσιο κ.λπ.
  2. Οι πίνακες διευκολύνουν τη σύνταξη κώδικα με δυνατότητα συντήρησης. Για τα ίδια λογικά σχετιζόμενα δεδομένα, σας επιτρέπει να ορίσετε μια μεμονωμένη μεταβλητή, αντί να ορίσετε περισσότερες από μία μεταβλητές.
  3. Καλύτερη απόδοση – αφού οριστεί ένας πίνακας, είναι ταχύτερη η ανάκτηση, η ταξινόμηση και η τροποποίηση δεδομένων.

Τύποι Πίνακες στο VBA

Το VBA υποστηρίζει δύο τύπους συστοιχιών:

  • Στατικός – Αυτοί οι τύποι συστοιχιών έχουν έναν σταθερό προκαθορισμένο αριθμό στοιχείων που μπορούν να αποθηκευτούν. Δεν μπορεί κανείς να αλλάξει το μέγεθος του τύπου δεδομένων ενός στατικού πίνακα. Αυτά είναι χρήσιμα όταν θέλετε να εργαστείτε με γνωστές οντότητες όπως ο αριθμός των ημερών την εβδομάδα, το φύλο κ.λπ.Για το Παράδειγμα: Dim ArrayMonth(12) As String
  • Δυναμικός – Αυτοί οι τύποι συστοιχιών δεν έχουν σταθερό προκαθορισμένο αριθμό στοιχείων που μπορούν να αποθηκευτούν. Αυτά είναι χρήσιμα όταν εργάζεστε με οντότητες που δεν μπορείτε να προκαθορίσετε τον αριθμό.Για το Παράδειγμα: Dim ArrayMonth() Ως παραλλαγή

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

Σύνταξη για τη δήλωση πινάκων

Στατικοί πίνακες

Η σύνταξη για τη δήλωση ΣΤΑΤΙΚΟΣ οι πίνακες έχουν ως εξής:

Dim arrayName (n) as datatype

ΕΔΩ,

Code Ενέργειες
Dim arrayName (n) τύπος δεδομένων
  1. Δηλώνει μια μεταβλητή πίνακα που ονομάζεται arrayName με μέγεθος n και τύπο δεδομένων. Το μέγεθος αναφέρεται στον αριθμό των στοιχείων που μπορεί να αποθηκεύσει ο πίνακας.

Δυναμικές συστοιχίες

Η σύνταξη για τη δήλωση ΔΥΝΑΜΙΚΟΣ οι πίνακες έχουν ως εξής:

Dim arrayName() as datatype
ReDim arrayName(4)

ΕΔΩ,

Code Ενέργειες
Dim arrayName () τύπος δεδομένων
  1. Δηλώνει μια μεταβλητή πίνακα που ονομάζεται arrayName χωρίς να προσδιορίζει τον αριθμό των στοιχείων
ReDim arrayName(4)
  1. Καθορίζει το μέγεθος του πίνακα μετά τον καθορισμό του πίνακα.

Διαστάσεις πίνακα

Ένας πίνακας μπορεί να είναι μονοδιάστατος, δύο διαστάσεων ή πολυδιάστατος.

  • Μία διάσταση: Σε αυτή τη διάσταση, ο πίνακας χρησιμοποιεί μόνο ένα ευρετήριο. Για παράδειγμα, ένας αριθμός ατόμων κάθε ηλικίας.
  • Δύο διαστάσεις: Σε αυτή τη διάσταση, ο πίνακας χρησιμοποιεί δύο ευρετήρια. Για παράδειγμα, ένας αριθμός μαθητών σε κάθε τάξη. Απαιτεί αριθμό τάξεων και αριθμό μαθητών σε κάθε τάξη
  • Πολυδιάστατη: Σε αυτή τη διάσταση, ο πίνακας χρησιμοποιεί περισσότερους από δύο δείκτες. Για παράδειγμα, οι θερμοκρασίες κατά τη διάρκεια της ημέρας. (30, 40, 20).

Πώς να χρησιμοποιήσετε το Array στο Excel VBA

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

  • Δημιουργήστε ένα νέο Microsoft Βιβλίο εργασίας του Excel και αποθηκεύστε το ως Βιβλίο εργασίας με δυνατότητα Macro-Enabled Excel (*.xlsm)
  • Προσθέστε ένα κουμπί εντολής στο βιβλίο εργασίας
  • Ορίστε τις ιδιότητες ονόματος και λεζάντας του κουμπιού εντολής
  • Προγραμματισμός του VBA που συμπληρώνει το φύλλο Excel

Ας κάνουμε αυτή την άσκηση βήμα προς βήμα,

Βήμα 1 – Δημιουργήστε ένα νέο βιβλίο εργασίας

  1. Ανοικτό Microsoft Excel
  2. Αποθηκεύστε το νέο βιβλίο εργασίας ως VBA Arrays.xlsm

Βήμα 2 – Προσθέστε ένα κουμπί εντολής

Σημείωση: Αυτή η ενότητα προϋποθέτει ότι είστε εξοικειωμένοι με τη διαδικασία δημιουργίας μιας διεπαφής στο excel. Εάν δεν είστε εξοικειωμένοι, διαβάστε το σεμινάριο VBA Excel Form Control & ActiveX Control. Θα σας δείξει πώς να δημιουργήσετε τη διεπαφή

  1. Προσθέστε ένα κουμπί εντολής στο φύλλο

Χρησιμοποιήστε το Array στο Excel VBA

  1. Ορίστε την ιδιότητα ονόματος σε cmdLoadBeverages
  2. Ορίστε την ιδιότητα λεζάντας σε Φόρτωση ποτών

Το GUI σας θα πρέπει τώρα να είναι ως εξής

Χρησιμοποιήστε το Array στο Excel VBA

Βήμα 3 – Αποθηκεύστε το αρχείο

  1. Κάντε κλικ στο κουμπί αποθήκευση ως
  2. Επιλέξτε Βιβλίο εργασίας με δυνατότητα Macro-Enabled (*.xlsm) όπως φαίνεται στην παρακάτω εικόνα

Χρησιμοποιήστε το Array στο Excel VBA

Βήμα 4 – Γράψτε τον κωδικό

Τώρα θα γράψουμε τον κωδικό για την εφαρμογή μας

  1. Κάντε δεξί κλικ στο κουμπί Φόρτωση ποτών και επιλέξτε προβολή κωδικού
  2. Προσθέστε τον ακόλουθο κώδικα στο συμβάν κλικ του cmdLoadBeverages
Private Sub cmdLoadBeverages_Click()
    Dim Drinks(1 To 4) As String

    Drinks(1) = "Pepsi"
    Drinks(2) = "Coke"
    Drinks(3) = "Fanta"
    Drinks(4) = "Juice"

    Sheet1.Cells(1, 1).Value = "My Favorite Beverages"
    Sheet1.Cells(2, 1).Value = Drinks(1)
    Sheet1.Cells(3, 1).Value = Drinks(2)
    Sheet1.Cells(4, 1).Value = Drinks(3)
    Sheet1.Cells(5, 1).Value = Drinks(4)
End Sub

ΕΔΩ,

Code Ενέργειες
Dim Drinks(1 έως 4) As String
  • Δηλώνει μια μεταβλητή πίνακα που ονομάζεται Drinks. Ο πρώτος δείκτης πίνακα είναι 1 και ο τελευταίος δείκτης είναι 4.
Ποτά (1) = "Pepsi"
  • Εκχωρεί την τιμή Pepsi στο πρώτο στοιχείο πίνακα. Ο άλλος παρόμοιος κώδικας κάνει το ίδιο για τα άλλα στοιχεία του πίνακα.
Sheet1.Cells(1, 1).Value = “Τα αγαπημένα μου ποτά”
  • Γράφει την τιμή My Favorite Beverages στη διεύθυνση του κελιού A1. Το φύλλο1 κάνει αναφορά στο φύλλο και τα κελιά(1,1) αναφέρονται στον αριθμό σειράς 1 και στη στήλη 1 (Β)
Sheet1.Cells(2, 1).Value = Drinks(1)
  • Γράφει την τιμή του στοιχείου του πίνακα με δείκτη 1 στη σειρά αριθμό δύο της στήλης 1

Δοκιμή της εφαρμογής μας

Με τον κώδικα στη θέση του, το τελευταίο βήμα είναι να εκτελέσετε το κουμπί και να επιβεβαιώσετε ότι ο πίνακας γεμίζει το φύλλο. Επιλέξτε την καρτέλα προγραμματιστή και βεβαιωθείτε ότι το κουμπί λειτουργίας σχεδίασης είναι "απενεργοποιημένο". Η ένδειξη είναι ότι θα έχει λευκό φόντο και όχι έγχρωμο (πρασινωπό) φόντο. (Δείτε την εικόνα παρακάτω)

Δοκιμή μιας εφαρμογής στο Excel VBA

Κάντε κλικ στο κουμπί Φόρτωση ποτών

Θα λάβετε τα ακόλουθα αποτελέσματα

Δοκιμή μιας εφαρμογής στο Excel VBA

Κατεβάστε το Excel που περιέχει τον παραπάνω κώδικα

Κατεβάστε το παραπάνω αρχείο Excel Code

Συχνές Ερωτήσεις

Ένας στατικός πίνακας έχει ένα σταθερό μέγεθος που ορίζεται κατά τη δήλωση, όπως το Dim Arr(12). Ένας δυναμικός πίνακας δηλώνεται κενός με το Dim Arr() και αλλάζει μέγεθος αργότερα χρησιμοποιώντας το ReDim όταν ο αριθμός των στοιχείων δεν είναι γνωστός εκ των προτέρων.

Το ReDim ορίζει ή αλλάζει το μέγεθος ενός δυναμικού πίνακα μετά τη δήλωσή του. Η προσθήκη της λέξης-κλειδιού Preserve, όπως στο ReDim Preserve Arr(10), διατηρεί τις υπάρχουσες τιμές κατά την αλλαγή μεγέθους. Χωρίς το Preserve, όλες οι αποθηκευμένες τιμές διαγράφονται.

Χρησιμοποιήστε τις συναρτήσεις LBound και UBound. Η LBound επιστρέφει τον χαμηλότερο δείκτη και η UBound επιστρέφει τον υψηλότερο δείκτη. Ο αριθμός των στοιχείων ισούται με UBound(Arr) μείον LBound(Arr) συν ένα, το οποίο λειτουργεί τόσο για στατικούς όσο και για δυναμικούς πίνακες.

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

Ναι. Οι βοηθοί τεχνητής νοημοσύνης διαβάζουν το σφάλμα "Δείκτης εκτός εύρους" και τον κώδικα, στη συνέχεια υποδεικνύουν τον δείκτη που υπερβαίνει τα όρια του πίνακα και προτείνουν μια διόρθωση, όπως η προσαρμογή του μεγέθους ReDim ή του μετρητή βρόχου. Ο προγραμματιστής το εφαρμόζει και το δοκιμάζει ξανά.

Συνοψίστε αυτήν την ανάρτηση με: