Πώς να χρησιμοποιήσετε το VBA για κάθε βρόχο; (με παραδείγματα Excel)

Excel VBA για κάθε βρόχο

Το VBA For Every Loop περνά από όλη τη συλλογή αντικειμένων ή αντικειμένων και εκτελεί ένα παρόμοιο σύνολο δραστηριοτήτων. Θα λάβει υπόψη όλα τα διαθέσιμα καθορισμένα αντικείμενα και θα εκτελέσει καθοδηγούμενη δραστηριότητα σε κάθε αντικείμενο.

Στο VBA είναι υποχρεωτικό να κατανοήσετε τους βρόχους στο VBA. Ένας βρόχος σάς επιτρέπει να κάνετε το ίδιο είδος δραστηριότητας για πολλά κελιά ή αντικείμενα στο Excel. Στο σημερινό άρθρο, θα επικεντρωθούμε στο μηχανισμό For Every Loop.

Σύνταξη

Για κάθε βρόχο μπορεί να περάσει από όλη τη συλλογή αντικειμένων ή αντικειμένων. Μια συλλογή δεν είναι παρά «Όλα τα ανοιχτά βιβλία εργασίας», «Όλα τα φύλλα εργασίας σε ένα βιβλίο εργασίας», «Όλη η συλλογή σχημάτων και γραφημάτων στο βιβλίο εργασίας».

Ας δούμε τη σύνταξη.

Για κάθε αντικείμενο στη συλλογή Τι να κάνετε; Επόμενο αντικείμενο

Για παράδειγμα, έχετε 10 φύλλα στο βιβλίο εργασίας σας και θέλετε να αποκρύψετε όλα τα φύλλα εργασίας εκτός από αυτό που βρίσκεστε. Μπορείτε να αποκρύψετε χειροκίνητα, ναι μπορείτε αλλά τι γίνεται αν έχετε 100 φύλλα σαν αυτό δεν είναι βαρετό και χρόνο -κατανάλωση εργασίας που πρέπει να κάνετε. Μπορείτε να το κάνετε χρησιμοποιώντας κάθε βρόχο.

Πώς να χρησιμοποιήσετε για κάθε βρόχο στο VBA; (Παραδείγματα)

Μπορείτε να κατεβάσετε αυτό το πρότυπο VBA για κάθε βρόχο εδώ - VBA για κάθε πρότυπο βρόχου

Παράδειγμα # 1 - Εισαγωγή ίδιου κειμένου σε όλα τα φύλλα

Θα δούμε πώς να χρησιμοποιείτε ΓΙΑ ΚΑΘΕ στο VBA με ένα απλό παράδειγμα. Ας υποθέσουμε ότι έχετε 5 φύλλα εργασίας σε ένα βιβλίο εργασίας και θέλετε να εισαγάγετε τη λέξη "Γεια" σε όλα τα φύλλα εργασίας στο κελί A1.

Μπορούμε να το κάνουμε με ΓΙΑ ΚΑΘΕ ΒΡΟΧΗ. Ένα πράγμα που πρέπει να θυμάστε εδώ είναι ότι εκτελούμε αυτήν τη δραστηριότητα σε κάθε φύλλο εργασίας και όχι στο ίδιο φύλλο εργασίας. Ακολουθήστε τα παρακάτω βήματα για να γράψετε τον κώδικα VBA.

Βήμα 1: Ξεκινήστε τη μακροεντολή excel.

Κώδικας:

 Sub For_Each_Example1 () End Sub 

Βήμα 2: Δεδομένου ότι αναφερόμαστε στα φύλλα εργασίας δηλώστε τη μεταβλητή ως "φύλλο εργασίας"

Κώδικας:

 Sub For_Each_Example1 () Dim Ws ως φύλλο εργασίας End Sub 

Βήμα 3: Τώρα χρησιμοποιώντας ΓΙΑ ΚΑΘΕ ΒΡΟΧΗ πρέπει να παραπέμπουμε κάθε φύλλο εργασίας στο ενεργό βιβλίο εργασίας

Κώδικας:

 Sub For_Each_Example1 () Dim Ws ως φύλλο εργασίας για κάθε Ws στο ActiveWorkbook. Φύλλα εργασίας Επόμενο Ws End Sub 

Βήμα 4: Τώρα γράψτε τι θέλουμε να κάνουμε σε κάθε φύλλο εργασίας. Σε κάθε φύλλο εργασίας, πρέπει να τοποθετήσουμε τη λέξη «Γεια» στο κελί A1.

Κώδικας: 

 Sub For_Each_Example1 () Dim Ws ως φύλλο εργασίας για κάθε Ws στο ActiveWorkbook.Wheheets Ws.Range ("A1"). Value = "Hello" Next Ws End Sub 

Βήμα 5: Τώρα εκτελέστε αυτόν τον κώδικα χειροκίνητα μέσω της επιλογής ή πατήστε το πλήκτρο συντόμευσης F5, δεν έχει σημασία πόσα φύλλα έχετε, θα εισαγάγει τη λέξη «Γεια» σε όλα τα φύλλα εργασίας.

Παράδειγμα # 2 - Απόκρυψη όλων των φύλλων

Όπως ειπώθηκε νωρίτερα στην ανάρτηση τι γίνεται αν έχετε εκατοντάδες φύλλα για να αποκρύψετε εκτός από αυτό που βρίσκεστε. Χρησιμοποιώντας για κάθε βρόχο, μπορούμε να κρύψουμε όλα τα φύλλα στο excel.

Βήμα 1: Ξεκινήστε τη μακροεντολή με το όνομά σας.

Κώδικας:

 Sub For_Each_Example2 () End Sub 

Βήμα 2: Δηλώστε τη μεταβλητή ως " Ws ".

Κώδικας:

 Sub For_Each_Example2 () Dim Ws ως φύλλο εργασίας End Sub 

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

Κώδικας:

 Sub For_Each_Example2 () Dim Ws ως φύλλο εργασίας για κάθε Ws στο ActiveWorkbook.Wheheets Ws.Visible = xlSheetVeryHidden Next Ws End Sub 

Βήμα 4: Αλλά αν εκτελέσετε τον παραπάνω κώδικα, θα προσπαθήσει να κρύψει όλα τα φύλλα, αλλά το Excel χρειάζεται τουλάχιστον ένα φύλλο για να είναι ορατό. Πρέπει λοιπόν να πούμε ποιο φύλλο να μην κρύβεται.

Κώδικας:

 Sub For_Each_Example2 () Dim Ws ως φύλλο εργασίας για κάθε Ws στο ActiveWorkbook.Wheheets If Ws.Name "Main Sheet" Στη συνέχεια Ws.Visible = xlSheetVeryHidden End if Next Ws End Sub 

Το σύμβολο χειριστή σημαίνει ότι δεν ισούται με το VBA .

Έτσι, ο κώδικας λέει όταν κάνετε βρόχο σε όλα τα φύλλα εργασίας στο ενεργό βιβλίο εργασίας, αποκρύψτε μόνο εάν το όνομα φύλλου δεν είναι ίσο με το όνομα φύλλου του Κύριου φύλλου.

Αυτό μπορεί να γίνει χρησιμοποιώντας τη δήλωση IF στο VBA. Γράψτε τον κωδικό ως IF Ws.Name "Κύριο φύλλο" Στη συνέχεια αποκρύψτε ή αν είναι ίσο με το όνομα φύλλου "Κύριο φύλλο", τότε μην κρύβετε.

Βήμα 5: Τώρα εκτελέστε τον κώδικα χρησιμοποιώντας το πλήκτρο F5 ή χειροκίνητα τότε, θα κρύψει όλο το φύλλο εργασίας εκτός από αυτό που ονομάζεται "Κύριο φύλλο".

Παράδειγμα # 3 - Απόκρυψη όλων των φύλλων

Έχουμε δει πώς να κρύψουμε όλα τα φύλλα εκτός από αυτό που είμαστε. Ομοίως, μπορούμε να αποκρύψουμε όλα τα φύλλα εργασίας επίσης.

Πρέπει απλώς να αλλάξουμε τον κώδικα από xlSheetVeryHidden σε xlSheetVisible.

Κώδικας:

 Sub For_Each_Example3 () Dim Ws ως φύλλο εργασίας για κάθε Ws στο ActiveWorkbook.Wheheets Ws.Visible = xlSheetVisible Next Ws End Sub 

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

Παράδειγμα # 4 - Προστασία και κατάργηση προστασίας όλων των φύλλων

Προστατέψτε όλα τα φύλλα: Μπορούμε να προστατεύσουμε όλα τα φύλλα στο βιβλίο εργασίας με ένα μόνο κομμάτι κώδικα. Όλος ο κώδικας είναι το ίδιο μόνο πράγμα που πρέπει να κάνουμε εδώ αντί για Ws. Ορατό πρέπει να βάλουμε τον κωδικό Ws. Προστατέψτε και πληκτρολογήστε τον κωδικό πρόσβασης.

Κώδικας:

 Sub For_Each_Example4 () Dim Ws ως φύλλο εργασίας για κάθε Ws στο ActiveWorkbook.Wheheets Ws.Protect Password: = "Excel @ 2019" Next Ws End Sub 

Αποπροστασία όλων των φύλλων: Σε παρόμοια σημείωση, χρησιμοποιώντας το vba μπορούμε επίσης να αποπροστατεύσουμε όλα τα φύλλα που προστατεύονται στο βιβλίο εργασίας. Πρέπει απλώς να βάλουμε τη λέξη Unprotect και τον κωδικό πρόσβασης.

Κώδικας:

 Sub For_Each_Example6 () Dim Ws ως φύλλο εργασίας για κάθε Ws στο ActiveWorkbook.Wheheets Ws.Unprotect Password: = "Excel @ 2019" Next Ws End Sub 

Πράγματα που πρέπει να θυμάστε

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

$config[zx-auto] not found$config[zx-overlay] not found