Αυτό το σεμινάριο θα δείξει τον τρόπο δημιουργίας και χρήσης συστοιχιών αντικειμένων στο VBA.
Στο VBA, οι συστοιχίες είναι μεταβλητές που αποθηκεύουν πολλαπλές τιμές. Μπορείτε να αποθηκεύσετε αντικείμενα VBA σε πίνακες με τον ίδιο τρόπο όπως θα αποθηκεύατε οποιαδήποτε άλλα δεδομένα.
Δήλωση του πίνακα αντικειμένων
Σε αυτό το παράδειγμα, θα δηλώσουμε μια σειρά από φύλλα εργασίας VBA:
1 | Dim arWks (3) Ως φύλλο εργασίας |
Συμπλήρωση ενός πίνακα στατικών αντικειμένων
Δηλώστε τον πίνακα αντικειμένων ως στατικό και, στη συνέχεια, μπορείτε να συμπληρώσετε τον πίνακα με τα φύλλα που επιλέγετε από το βιβλίο εργασίας σας.
12345678 | Sub TestObjArray ()'ορίστε τον πίνακα ως πίνακα φύλλου εργασίαςDim arWks (1 έως 3) Ως φύλλο εργασίας"προσθέστε 3 φύλλα στον πίνακασύνολο arWks (1) = Φύλλα (1)σύνολο arWks (2) = Φύλλα (2)Ορισμός arWks (3) = Φύλλα (3)Τέλος υπο |
Συμπλήρωση συστοιχίας δυναμικού αντικειμένου
Μπορείτε να δηλώσετε ότι ο πίνακας αντικειμένων είναι δυναμικός και, στη συνέχεια, να μετρήσετε τα φύλλα στο βιβλίο εργασίας πριν αντιστοιχίσετε το μέγεθος του πίνακα στον πίνακα αντικειμένων.
1234567891011121314 | Sub TestObjArray ()'ορίστε τον πίνακα ως πίνακα φύλλου εργασίαςDim arWks () Ως φύλλο εργασίας«μετρήστε πόσα φύλλα εργασίας στο αρχείο και ξαναστασιάστε τον πίνακαDim n ως ακέραιοςDim i As Integer«μετρήστε τα φύλλα και μείον ένα για να ορίσετε τα όρια για τον πίνακαn = Application.Sheets.Count - 1ReDim arWks (n)"συμπληρώστε τη συστοιχία φύλλου εργασίας με όλα τα φύλλα στο βιβλίο εργασίαςΓια i = LBound (arWks) έως UBound (arWks)Ορισμός arWks (i) = ActiveWorkbook. Φύλλα (i + 1)Επόμενο iΤέλος υπο |
Στο παραπάνω παράδειγμα, δηλώνουμε πρώτα τον πίνακα φύλλου εργασίας. Στη συνέχεια, μετράμε τον αριθμό των φύλλων στο βιβλίο εργασίας και εκχωρούμε αυτήν την τιμή μείον ένα στο UBound του πίνακα. Αυτό οφείλεται στο γεγονός ότι το LBound του πίνακα ξεκινά ως 0. Τέλος, κάνουμε βρόχο στα φύλλα και προσθέτουμε κάθε φύλλο στον πίνακα.
Χρήση του πίνακα αντικειμένων στον κώδικα VBA
Αφού συμπληρώσουμε τη συστοιχία φύλλου εργασίας, μπορούμε να χρησιμοποιήσουμε το VBA για να βροχήσουμε τον πίνακα.
123456789101112131415161718 | Sub TestObjArray ()'ορίστε τον πίνακα ως πίνακα φύλλου εργασίαςDim arWks () Ως φύλλο εργασίας«μετρήστε πόσα φύλλα εργασίας στο αρχείο και ξαναστασιάστε τον πίνακαDim n ως ακέραιοςDim i As Integer«μετρήστε τα φύλλα και μείον ένα για να ορίσετε τα όρια για τον πίνακαn = Application.Sheets.Count - 1ReDim arWks (n)"συμπληρώστε τη συστοιχία φύλλου εργασίας με όλα τα φύλλα στο βιβλίο εργασίαςΓια i = LBound (arWks) έως UBound (arWks)Ορισμός arWks (i) = ActiveWorkbook. Φύλλα (i + 1)Επόμενο i«κάντε κάτι σε κάθε φύλλο του πίνακαΓια i = LBound (arWks) έως UBound (arWks)arWks (i) .Range ("A1: H1"). Font.Bold = TrueΕπόμενο iΤέλος υπο |
Στο παραπάνω παράδειγμα, κάνουμε βρόχο στον πίνακα και τονίζουμε την πρώτη σειρά κάθε φύλλου στον πίνακα.