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

Πίνακας περιεχομένων

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

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

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

Σύνταξη

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

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

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

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

Πώς να χρησιμοποιήσετε για κάθε βρόχο στο 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 .

So code says when you are looping through all the worksheets in the active workbook, hide only if the sheet name is not equal to the sheet name of Main Sheet.

This can be done by using the IF statement in VBA. Write the code as IF Ws.Name “Main Sheet” Then hide or if it is equal to the sheet name “Main Sheet,” then don’t hide.

Step 5: Now run the code using the F5 key or manually. Then, it will hide all the worksheets except the one named “Main Sheet.”

Example #3 - Unhide All the Sheets

We have seen how to hide all sheets except the one we are in. Similarly, we can unhide all the worksheets as well.

We need to change the code from xlSheetVeryHidden to xlSheetVisible.

Code:

Sub For_Each_Example3() Dim Ws As Worksheet For Each Ws In ActiveWorkbook.Worksheets Ws.Visible = xlSheetVisible Next Ws End Sub

Here we don’t need the IF condition because we are unhiding all the sheets. If you don’t want to unhide any specific sheet, then you can use the IF condition and supply the sheet name.

Example #4 - Protect and UnProtect All the Sheets

Protect All Sheets: We can protect all the sheets in the workbook with just a piece of code. All the principle is the same only thing we need to do here is instead of Ws. Visible, we need to put the code Ws. Protect and type the password.

Code:

Sub For_Each_Example4() Dim Ws As Worksheet For Each Ws In ActiveWorkbook.Worksheets Ws.Protect Password:="Excel@2019" Next Ws End Sub

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

Κώδικας:

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

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

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

ενδιαφέροντα άρθρα...