/ / / Dynamic Array στο Excel VBA

Δυναμικό πίνακα στο Excel VBA

Εάν το μέγεθος της συστοιχίας σας αυξηθεί και δεν θέλετε να διορθώσετε το μέγεθος του πίνακα, μπορείτε να χρησιμοποιήσετε το Λέξη-κλειδί ReDim. Excel VBA τότε αλλάζει αυτόματα το μέγεθος του πίνακα.

Προσθέστε μερικούς αριθμούς στη στήλη Α.

Δυναμικό πίνακα στο Excel VBA

Τοποθετήστε ένα κουμπί εντολής στο φύλλο εργασίας σας και προσθέστε τις ακόλουθες γραμμές κώδικα:

1. Αρχικά, δηλώνουμε τη σειρά που ονομάζεται αριθμοί. Επίσης, δηλώνουμε δύο μεταβλητές τύπου Integer. Ένα όνομα μεγέθους και ένα όνομα i.

Dim numbers() As Integer, size As Integer, i As Integer

Σημείωση: ο πίνακας δεν έχει ακόμα μέγεθος. οι αριθμοί, το μέγεθος και το i επιλέγονται τυχαία εδώ, μπορείτε να χρησιμοποιήσετε οποιαδήποτε ονόματα. Θυμηθείτε να ανατρέξετε σε αυτά τα ονόματα στον υπόλοιπο κωδικό σας.

2. Στη συνέχεια, καθορίζουμε το μέγεθος του πίνακα και το αποθηκεύουμε στο μεταβλητό μέγεθος. Μπορείτε να χρησιμοποιήσετε τη λειτουργία φύλλου εργασίας CountA για αυτό. Προσθέστε την ακόλουθη γραμμή κώδικα:

size = WorksheetFunction.CountA(Worksheets(1).Columns(1))

3. Γνωρίζουμε τώρα το μέγεθος του πίνακα και μπορούμε να το επανατοποθετήσουμε. Προσθέστε την ακόλουθη γραμμή κώδικα:

ReDim numbers(size)

4. Στη συνέχεια αρχικοποιούμε κάθε στοιχείο του πίνακα. Χρησιμοποιούμε βρόχο.

For i = 1 To size
    numbers(i) = Cells(i, 1).Value
Next i

5. Εμφανίζουμε το τελευταίο στοιχείο του πίνακα χρησιμοποιώντας ένα MsgBox.

MsgBox numbers(size)

6. Κλείστε τον επεξεργαστή της Visual Basic και κάντε κλικ στο κουμπί εντολών στο φύλλο.

Αποτέλεσμα:

Τελευταίο στοιχείο του πίνακα

7. Τώρα για να δείτε ξεκάθαρα γιατί ονομάζεται δυναμικός πίνακας, προσθέστε έναν αριθμό στη στήλη Α.

Πρόσθεσε αριθμό

8. Κάντε ξανά κλικ στο κουμπί εντολών.

Δυναμικό αποτέλεσμα πίνακα

Συμπέρασμα: Το Excel VBA έχει αλλάξει αυτόματα το μέγεθος αυτού του δυναμικού πίνακα.

9. Όταν χρησιμοποιείτε τη λέξη-κλειδί ReDim, διαγράφετε όλα τα υπάρχοντα δεδομένα που είναι αποθηκευμένα στον πίνακα. Για παράδειγμα, προσθέστε τις ακόλουθες γραμμές κώδικα στον κώδικα που δημιουργήθηκε προηγουμένως:

ReDim numbers(3)
MsgBox numbers(1)

Αποτέλεσμα:

Χωρίς Διατήρηση

Ο πίνακας είναι κενός.

10. Όταν θέλετε να διατηρήσετε τα δεδομένα στην υπάρχουσα συστοιχία κατά την αναδιέγερσή της, χρησιμοποιήστε τη λέξη-κλειδί Διατήρηση.

ReDim Preserve numbers(3)
MsgBox numbers(1)

Αποτέλεσμα:

Με το Preserve

Επίσης διαβάστε: