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

Οι πίνακες διατηρούν το σύνολο δεδομένων στη μνήμη τους και δεν χρειάζεται να δηλώσουμε τη μεταβλητή για καθεμία από τις τιμές που πρέπει να ληφθούν από τα δεδομένα. Η ανάγκη για χρήση συστοιχιών οφείλεται στο γεγονός ότι σε μια μεταβλητή excel έχει σχεδιαστεί για να διατηρεί μία τιμή τη φορά. Ωστόσο, όταν αποθηκεύονται πολλές τιμές από μια μεταβλητή, γίνεται πίνακας.
- Η δημιουργία ενός πίνακα είναι σαν τη δημιουργία μιας ξεχωριστής μονάδας μνήμης που μπορεί να διατηρήσει τα δεδομένα σε αυτήν. Για τη δημιουργία ενός πίνακα, τα δεδομένα πρέπει να είναι του ίδιου τύπου.
- Οι πίνακες που δίνουμε στο excel πρέπει να αντιστοιχούν στον τύπο δεδομένων που έχουμε. Ας υποθέσουμε ότι εάν έχουμε δεδομένα που έχουν μόνο σειρές, οπότε σε αυτήν την περίπτωση, θα χρησιμοποιήσουμε την «Μονοδιάστατη συστοιχία», και αν τα δεδομένα περιέχουν στήλες, τότε πρέπει να χρησιμοποιήσουμε «δισδιάστατες συστοιχίες», καθώς μπορούν να κρατήσουν μόνο τις τιμές από τις σειρές και τις στήλες.
- Οι πίνακες πρέπει επίσης να λειτουργούν ως δυναμικές συστοιχίες ή στατικές συστοιχίες. Καθώς δίνουμε ένα δυναμικό εύρος στον τύπο, μπορούμε επίσης να κάνουμε το Arrays μεταβλητό. Οι δυναμικές συστοιχίες θα έχουν τη λειτουργικότητα να περιλαμβάνουν έναν άπειρο αριθμό σειρών και στηλών. Σε περίπτωση που οι συστοιχίες που έχουμε ορίσει είναι στατικού τύπου, τότε μπορούν να κρατήσουν μόνο περιορισμένο αριθμό σειρών και στηλών όπως ορίζονται κατά τη στιγμή της δημιουργίας του πίνακα.
Εξήγηση
Ο Array δουλεύει στον «Μαθηματικό κανόνα ενός πίνακα». Δηλαδή, αναγνωρίζουν τα δεδομένα μόνο από την τοποθεσία του. Ας υποθέσουμε ότι αν πρέπει να κάνουμε το VBA να καταλάβει ότι χρειαζόμαστε "20" στο κελί "B3", τότε πρέπει να γράψουμε τον κωδικό της θέσης ως (3, 2) όπου η πρώτη τιμή σημαίνει τη θέση της σειράς και η δεύτερη τιμή σημαίνει τον αριθμό στήλης. Στον κόσμο του Excel, αυτοί οι κωδικοί τοποθεσιών ονομάζονται «Άνω όριο» και «Κάτω όριο». Από προεπιλογή, η τοποθεσία στο excel ξεκινά από το ένα και όχι από το μηδέν, έτσι το excel βλέπει το "A1" ως αριθμό σειράς 0 και όχι τον αριθμό σειράς 1.
Ομοίως, οι στήλες ξεκινούν από μηδέν και όχι από μία.

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

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

# 2 - Δυναμική συστοιχία
Σειρά με μια μη προκαθορισμένη τιμή που μπορεί να χειριστεί.
# 3 - Μονοδιάστατη συστοιχία
Ένας πίνακας που μπορεί να χωρέσει μόνο δεδομένα είτε από σειρές είτε από στήλες.


# 4 - Διάστατη συστοιχία
Ένας πίνακας που μπορεί να αποθηκεύσει μια τιμή από τις γραμμές και τις στήλες.


# 5 - Πολυδιάστατη σειρά


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

Αυτό θα ανοίξει το πρόγραμμα επεξεργασίας VBA. Από εκεί, πρέπει να εισαγάγουμε τον κωδικό στο "Αυτό το φύλλο εργασίας".

Παράδειγμα # 1
Επιλέξτε τον τύπο πίνακα που θέλετε. Πρέπει να είναι ένας δυναμικός ή στατικός πίνακας;
Εάν χρειαζόμαστε μια δυναμική συστοιχία, τότε θα ορίσουμε τη διάσταση ως «παραλλαγή».

Εάν χρειαζόμαστε έναν στατικό πίνακα, τότε θα ορίσουμε μια διάσταση ως "Στατική".

Παράδειγμα # 2
Ορίστε τις στήλες και τις γραμμές που θέλετε να αποθηκεύσει ο πίνακας.
Εάν έχουμε εισαγάγει το «1» στο βραχίονα, αυτό σημαίνει ότι ο πίνακας μπορεί να διατηρήσει την τιμή δύο σειρών καθώς η μέτρηση του excel ξεκινά από το μηδέν.

Εάν χρειαζόμαστε επίσης στήλες και σειρές, τότε πρέπει να ορίσουμε και τις δύο.
Εδώ «1 έως 2» σημαίνει ότι δύο σειρές και «1 έως 3» σημαίνουν ότι τρεις στήλες.

Εδώ έχουμε αλλάξει τον κανόνα για το πώς το excel μετράει σειρές και το ζητάμε να μετράει από το "1" και όχι από το μηδέν.
Παράδειγμα # 3
Η εισαγωγή δεδομένων στον πίνακα.
Τα δεδομένα πρέπει να εισέρχονται στα κελιά. Εδώ τα δεδομένα πρέπει να εισαχθούν με τη μορφή (I, j) όπου «I» σημαίνει τη σειρά και «J» σημαίνει τη στήλη.
Έτσι "a (1,1") σημαίνει ότι το κελί "A1."

Παράδειγμα # 4
Κλείνουμε τον κωδικό.
Μετά την εισαγωγή των δεδομένων για τον πίνακα, το τελευταίο βήμα θα είναι να κλείσετε τον κωδικό.

Πράγματα που πρέπει να θυμάστε
- Από προεπιλογή, το Excel θα μετρήσει τις σειρές ξεκινώντας από το μηδέν. Αυτό σημαίνει ότι το "2" αντί του "I" σημαίνει 3 σειρές και όχι 2 σειρές. Αυτό ισχύει και για το «J.»
- Τα δεδομένα που πρέπει να εισαχθούν για τον πίνακα πρέπει να ξεκινούν από (0, 0) που είναι από την πρώτη σειρά και την πρώτη στήλη.
- Σε περίπτωση που χρησιμοποιούμε τις δυναμικές συστοιχίες, τότε αυτό θα χρειαστεί τη λειτουργία του "VBA REDIM" για τον καθορισμό του αριθμού των σειρών και των στηλών που πρέπει να απομνημονευθούν.
- Στην περίπτωση δημιουργίας ενός δισδιάστατου πίνακα, τότε πρέπει να χρησιμοποιήσουμε το "Integer" ως διάσταση.
- Το αρχείο excel πρέπει να αποθηκευτεί στην έκδοση που είναι "συμβατή με μακροεντολή" αλλιώς η κωδικοποίηση που κάναμε στο VBA θα εξαφανιστεί και δεν θα εκτελεστεί την επόμενη φορά.