Βρόχοι VBA - Λίστα 4 κορυφαίων τύπων βρόχων (με παραδείγματα)

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

Βρόχοι Excel VBA

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

Επιτρέψτε μου να κάνω αυτήν τη δήλωση από την ίδια την αρχή. "Αν θέλετε να αποκτήσετε μάστερ στο VBA, πρέπει να ολοκληρώσετε το master το concept των βρόχων σε μακροεντολές VBA."

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

Λίστα των 4 κορυφαίων τύπων βρόχων VBA

  1. Για επόμενο βρόχο
  2. Για κάθε βρόχο
  3. Κάνετε ενώ κάνετε βρόχο
  4. Κάντε μέχρι το βρόχο

Ας δούμε κάθε έναν από αυτούς τους τύπους λεπτομερώς.

Πληκτρολογήστε # 1 - Για επόμενο βρόχο

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

Παράδειγμα

Για παράδειγμα, εάν θέλετε να εισαγάγετε σειριακούς αριθμούς από 1 έως 10, παρακάτω είναι ο παραδοσιακός τρόπος εισαγωγής σειριακών αριθμών.

Υπο σειριακός αριθμός ()

Εύρος ("A1"). Τιμή = 1
εύρος ("A2"). Τιμή = 2
εύρος ("A3"). Τιμή = 3
εύρος ("A4"). Τιμή = 4
εύρος ("A5"). Τιμή = 5
Εύρος ("A6"). Τιμή = 6
Εύρος ("A7"). Τιμή = 7
Εύρος ("A8"). Τιμή = 8
Εύρος ("A9"). Τιμή = 9
Εύρος ("A10"). Τιμή = 10

Τέλος Υποτ

Φαίνεται καλά, έτσι δεν είναι; Αλλά το πρόβλημα εδώ είναι μόνο 10 φορές που πρέπει να εκτελέσουμε αυτήν την εργασία. Αλλά φανταστείτε τι εάν θέλετε να εισαγάγετε 100 ή 1000 αριθμούς, μπορείτε να γράψετε τον κωδικό 100 ή 1000 γραμμές. Είναι αδύνατο, και εκεί είναι που η ομορφιά του For Next loop είναι βολική.

Βήμα 1: Ανοίξτε τη μακροεντολή και δηλώστε τη μεταβλητή i ως ακέραιο.

Υπο Εισαγωγή_Serial_Number ()

Dim i As Integer

Τέλος Υποτ

Βήμα 2: Τώρα ανοίξτε το For Loop . Εδώ αναφέρω την αρχή και το τέλος του βρόχου χρησιμοποιώντας τη μεταβλητή i.

Βήμα 3: Τώρα γράψτε τον κώδικα που θέλετε να εκτελέσετε. Πρέπει να εισαγάγουμε αριθμούς από 1 έως 10 σε κελιά A1 έως A10. Αντί να εφαρμόσετε τη μέθοδο Range, εφαρμόστε τη μέθοδο Cells.

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

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

Τώρα πατήστε το πλήκτρο F8 για να μπείτε σε μία προς μία γραμμή. Πατήστε F8 μέχρι να φτάσει στο βρόχο.

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

Τώρα πατήστε ένα ακόμη πλήκτρο F8 και τοποθετήστε έναν κέρσορα στο i & τώρα η τιμή είναι 1.

Έτσι, οι τιμές του i in παντού είναι τώρα ίσες με 1. " Cells (I, 1) .value = I" σημαίνει Cells (1, 1) .value = 1.

Πατήστε το πλήκτρο F8 και δείτε την τιμή στο κελί A1. Πρέπει να δείτε 1 στο κελί A1.

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

Για τον επόμενο βρόχο θα τρέξει για 10 φορές και εισάγετε σειριακούς αριθμούς από 1 έως 10.

Πληκτρολογήστε # 2 - για κάθε βρόχο

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

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

Παράδειγμα # 1

Εάν θέλετε να αποκρύψετε όλα τα φύλλα εργασίας εκτός από το φύλλο στο οποίο εργάζεστε, πώς θα το κάνετε; Εάν έχετε 20 φύλλα στο βιβλίο εργασίας, είναι μια χρονοβόρα διαδικασία. Αλλά με ΓΙΑ ΚΑΘΕ βρόχο, μπορούμε να εκτελέσουμε αυτήν την εργασία.

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

Sub To_Hide_All_Sheet ()

Dim Ws ως φύλλο εργασίας

Για κάθε Ws στο ActiveWorkbook. Φύλλα εργασίας

Εάν Ws.Name "Main", τότε
Ws.Visible = xlSheetVeryHidden
End If

Επόμενο Ws

Τέλος Υποτ

Παράδειγμα # 2

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

Sub To_UnHide_Specific_Sheet ()

Dim Ws ως φύλλο εργασίας

Για κάθε Ws στο ActiveWorkbook. Φύλλα εργασίας

Ws.Visible = xlSheetVisible

Επόμενο Ws

Τέλος Υποτ

Πληκτρολογήστε # 3 - Do While Loop

Το Do While loop εκτελεί την εργασία ενώ η δεδομένη συνθήκη είναι ΑΛΗΘΗ και όταν η συνθήκη γίνει ΛΑΘΟΣ, θα σταματήσει να βγαίνει. Σε αντίθεση με τους άλλους δύο βρόχους, το Do While δοκιμάζει την κατάσταση στο τέλος του βρόχου, όχι στην αρχή.

Θα σας δείξω το παράδειγμα της εισαγωγής σειριακών αριθμών με το βρόχο Do While.

Υπο Do_While_Example ()

Dim i As Integer

i = 1
Do While i <11
Cells (i, 1). Τιμή = i
i = i + 1
Loop

Τέλος Υποτ

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

Πληκτρολογήστε # 4 - Do To Loop

Σε αντίθεση με το βρόχο Do While, ο βρόχος Do Before δεν εκτελείται ενώ η συνθήκη είναι TRUE. μάλλον βγαίνει έως ότου η κατάσταση είναι ΛΑΘΗ. Για παράδειγμα, δείτε τον παρακάτω κώδικα.

Υπο Do_Until_Example ()

Dim i As Integer

i = 1
Do έως i = 11
Cells (i, 1). Value = i
i = i + 1
Loop

Τέλος Υποτ

Η μόνη διαφορά μεταξύ του βρόχου Do While & Do Before είναι ο τελεστής που καθορίζουμε. Στο Do, ενώ αναφέραμε την εκτέλεση του βρόχου ενώ είμαι μικρότερη από (<), 11 αλλά στο do μέχρι loop, αναφέραμε να τρέξουμε το βρόχο Μέχρι το i να είναι ίσο με (=) έως 11.

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

  • Υπάρχει ένα πιο προηγμένο παράδειγμα βρόχου Excel VBA, αλλά θα καλύψουμε κάθε ένα από αυτά σε ξεχωριστό άρθρο λεπτομερώς.
  • Κάθε βρόχος είναι για μεταβλητές αντικειμένων.
  • Παρόλο που το Do While & Do Before φαίνεται το ίδιο, η αναφορά της κατάστασης είναι πολύ σημαντική.
  • Οι βρόχοι είναι πολύ σημαντικές έννοιες.

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