Θέλετε να αυτοματοποιήσετε επαναλαμβανόμενες εργασίες στο Excel χρησιμοποιώντας VBA; Μάθετε πώς να χρησιμοποιείτε τον βρόχο For Every για να χειρίζεστε αποτελεσματικά τα δεδομένα στα υπολογιστικά φύλλα σας.

Οι βρόχοι και το VBA πάνε μαζί, και για έναν καλό λόγο επίσης. Όταν ασχολείστε με αντικείμενα του Microsoft Office, όπως βιβλία εργασίας, φύλλα εργασίας και εύρη, οι βρόχοι μπορούν να σας βοηθήσουν να κάνετε εναλλαγή μεταξύ τους με σχετική ευκολία.

Ενώ λίγο πολύ όλοι οι βρόχοι VBA λειτουργούν καλά με αντικείμενα, ο βρόχος "για κάθε" είναι μία από τις καλύτερες επιλογές για εργασία με συλλογές αντικειμένων. Εάν είστε νέος στο Excel VBA και θέλετε να κατακτήσετε το για κάθε βρόχο, μπορείτε να μάθετε γρήγορα από μερικά από αυτά τα παραδείγματα. Εδώ είναι όλα όσα πρέπει να ξέρετε για αυτόν τον βασικό βρόχο.

Για τη σύνταξη κάθε βρόχου

Η σύνταξη για κάθε βρόχο είναι αρκετά παρόμοια με τη συνηθισμένη βρόχο for στο Excel VBA. Εδώ είναι η σύνταξη:

Για κάθε variable_name στο object_collection

[δήλωση]

[δήλωση]

[δήλωση]

Επόμενη μεταβλητή_όνομα

instagram viewer

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

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

Τρόπος χρήσης του βρόχου For Every Loop στο Excel VBA

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

  1. Ανοίξτε το πρόγραμμα επεξεργασίας κώδικα VBA πατώντας Alt + F11.
  2. Εισαγάγετε μια ενότητα κάνοντας κλικ στο Μονάδα μέτρησης επιλογή εντός του Εισάγετε αυτί.
  3. Δημιουργήστε μια υπο-ρουτίνα χρησιμοποιώντας την εντολή sub() στο παράθυρο της μονάδας επεξεργασίας κώδικα. Βεβαιωθείτε ότι έχετε αντιστοιχίσει ένα ουσιαστικό όνομα στην υπο-ρουτίνα. Για αυτό το παράδειγμα, μπορείτε να χρησιμοποιήσετε το όνομα for_each_loop.

Τώρα που τα βασικά έχουν ξεφύγει, ήρθε η ώρα να αρχίσετε να γράφετε τον κώδικα. Μέσα στην υπο-ρουτίνα, πληκτρολογήστε τις ακόλουθες εντολές:

Θαμπό κελί όπως και εύρος

Για κάθε κελί σε Φύλλα("Φύλλο 1").Εύρος("A1:A10")

cell.value = 10

Επόμενο κελί

Όταν εκτελείται ο κώδικας, το ντο Η μεταβλητή θα αποθηκεύσει την τιμή του A1. Στη συνέχεια, καθώς προχωρά στη δήλωση εντός του βρόχου, αξιολογεί την εντολή και εισάγει μια τιμή 10 στο καθορισμένο κελί, δηλαδή στο κελί A1.

Τέλος, καθώς μετακινείται στη λέξη-κλειδί Επόμενο, μετακινείται στην επόμενη τιμή, δηλαδή στο κελί Α2. Ο βρόχος τρέχει μέχρι να φτάσει στο κελί A10. Αυτό είναι το τελικό αποτέλεσμα:

Χρήση του βρόχου με αντικείμενα: κελιά, φύλλα και βιβλία εργασίας

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

Εργασία με κύτταρα και βρόχους μαζί

Ας υποθέσουμε ότι θέλετε να προσθέσετε μια τιμή και ορισμένες συνθήκες μορφοποίησης σε μια περιοχή κελιών στο Φύλλο1. Ως πρώτο βήμα, πρέπει να ορίσετε τις συνθήκες εντός του βρόχου, ακολουθούμενες από τις εντολές μορφοποίησης.

Πληκτρολογήστε τον ακόλουθο κώδικα σε μια υπο-ρουτίνα.

Sub for_each_loop()

Dim c Οπως και Εύρος

Για κάθε c σε φύλλα ("Φύλλο 1").Εύρος("A1:A10")

Με ντο

.Τιμή = 10

.Γραμματοσειρά. Χρώμα = vbRed

.Γραμματοσειρά. Έντονη = Αληθής

.Γραμματοσειρά. Strikethrough = Αληθής

ΤέλοςΜε

Επόμενο γ

Τέλος Υπο

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

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

Χρήση του βρόχου για τον έλεγχο των φύλλων

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

Μπορείτε να χρησιμοποιήσετε τον ακόλουθο κώδικα για να μετονομάσετε ένα υπάρχον φύλλο εργασίας στο Excel χρησιμοποιώντας VBA:

Sub for_each_loop_sheets()

ΓιαΚαθεshtΣεΑυτό το Βιβλίο Εργασίας.Φύλλα

Αν sht. Όνομα = "Φύλλο 1" Επειτα

sht. Όνομα = "Φύλλο 3"

ΤέλοςΑν

Επόμενο sht

Τέλος Υπο

Ο κώδικας περνά μέσα από κάθε φύλλο μέσα στο βιβλίο εργασίας και ελέγχει το όνομα κάθε φύλλου. Εάν συναντήσει το όνομα Φύλλο1, το αλλάζει σε Φύλλο3. Προχωρά στα υπόλοιπα φύλλα, εάν υπάρχουν, μέσα στο βιβλίο εργασίας. Μόλις η εκτέλεση του κώδικα φτάσει στο τελευταίο φύλλο, βγαίνει από τον βρόχο και την υπο-ρουτίνα.

Μεταξύ ορισμένων άλλων κοινών χρήσεων, μπορείτε συγχώνευση πολλών φύλλων εργασίας χρησιμοποιώντας VBA και ενημερώστε το περιεχόμενο σε ένα μόνο φύλλο χρησιμοποιώντας βρόχους.

Εναλλαγή μέσω βιβλίων εργασίας με το βρόχο

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

Μπορείτε να χρησιμοποιήσετε εντολές VBA για να προσθέσετε τρία νέα βιβλία εργασίας και να κλείσετε όλα τα ανοιχτά μαζί. Δείτε πώς μπορείτε να το κάνετε:

Sub loop_wrkbook()

Dim wrkbook όπως και ΤΕΤΡΑΔΙΟ ΕΡΓΑΣΙΩΝ

Τετράδια εργασιών.Προσθήκη

Τετράδια εργασιών.Προσθήκη

Τετράδια εργασιών.Προσθήκη

Για κάθε βιβλίο εργασίας σε βιβλία εργασίας

wrkbook.Κλείσε

Επόμενο βιβλίο εργασίας

Τέλος Υπο

Ο παραπάνω κώδικας θα κλείσει επίσης το βιβλίο εργασίας της μακροεντολής. βεβαιωθείτε ότι έχετε αποθηκεύσει τους κωδικούς σας πριν εκτελέσετε αυτόν τον κωδικό.

Δεδομένου ότι οι βρόχοι έχουν πολλαπλές χρήσεις, μπορείτε επίσης ενοποίηση δεδομένων από πολλά βιβλία εργασίας σε ένα μόνο βιβλίο εργασίας.

Χρήση ένθετης δήλωσης IF με τον βρόχο

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

Υπάρχουν μερικοί τυχαίοι αριθμοί στα κελιά A1:A20. Μπορείτε να γράψετε έναν βρόχο για κύκλο σε κάθε δεδομένο κελί στην περιοχή. εάν η τιμή του κελιού είναι μικρότερη από 10, το χρώμα του κελιού πρέπει να αλλάξει σε κόκκινο. Εάν η τιμή του κελιού υπερβαίνει το 10, θα πρέπει να γίνει πράσινο. Χρησιμοποιήστε τον παρακάτω κώδικα για το σκοπό αυτό:

Sub loop_w_if()

Dim c Οπως και Εύρος

Για κάθε c σε φύλλα ("Φύλλο 4").Εύρος("A1:A20")

Ανντο.Αξία < 10 Επειτα

ντο. Εσωτερικό. ColorIndex = 3

Αλλού: γ. Εσωτερικό. ColorIndex = 4

ΤέλοςΑν

Επόμενο γ

Τέλος Υπο

Έτσι φαίνεται η έξοδος:

Χρήση βρόχων στο Excel VBA

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