Εάν γράφετε ένα πρόγραμμα VBA και θέλετε να εκτελέσετε την ίδια εργασία πολλές φορές, μπορείτε να το κάνετε χρησιμοποιώντας VBA για βρόχους. Το VBA είναι μια διαδοχική γλώσσα προγραμματισμού. Κάθε γραμμή κώδικα εκτελείται από πάνω προς τα κάτω μέχρι να μην υπάρχουν άλλες γραμμές κώδικα για ανάγνωση. Εάν θέλετε να επιστρέψετε και να εκτελέσετε μια εργασία, τότε πρέπει να πιέσετε χρησιμοποιώντας κώδικα μακροεντολής. Παίρνετε αποτελέσματα με βρόχο.
Το For Loop στο VBA είναι ένας από τους πιο συνηθισμένους τύπους βρόχου. Ο βρόχος For έχει δύο μορφές: Για το επόμενο και για κάθε στο επόμενο. Ο βρόχος For χρησιμοποιείται συνήθως για να μετακινηθεί διαδοχικά σε μια λίστα στοιχείων ή αριθμών. Για να τερματίσουμε τον βρόχο For σε οποιοδήποτε δεδομένο σημείο, μπορούμε να χρησιμοποιήσουμε τη δήλωση εξόδου. Για το Loop θα κάνει γύρο και γύρο μέχρι να πληροί την τελική συνθήκη. Μόλις ικανοποιηθεί η τελική συνθήκη, η ροή προγραμματισμού θα συνεχίσει προς τα κάτω, προς τη φυσική της κατεύθυνση.
Ο βρόχος For… Next έχει την ακόλουθη σύνταξη: Για counter = start_counter To end_counter 'Κάντε κάτι εδώ (ο κωδικός σας) Επόμενος μετρητής
Στην πραγματικότητα δημιουργούμε έναν βρόχο που χρησιμοποιεί μεταβλητή μετρητής ως «φύλακας χρόνου» του βρόχου. Το θέσαμε σε τιμή ίση με start_counter στην αρχή του βρόχου και, στη συνέχεια, αυξήστε το κατά 1 κατά τη διάρκεια κάθε βρόχου έως ότου πληροί την τελική συνθήκη. Ο βρόχος θα εκτελεστεί μέχρι τη στιγμή της τιμής του μετρητής γίνεται ίση με end_counterΤο Ο βρόχος εκτελείται για τελευταία φορά όταν ταιριάζουν και οι δύο παραπάνω τιμές και στη συνέχεια ο βρόχος σταματά.
Όλα τα παραπάνω μπορεί να είναι συγκεχυμένα για μερικούς ανθρώπους, οπότε ας προετοιμαστούμε και ξεκινήσουμε να μαθαίνουμε το For Loop στο excel με λίγα παραδείγματα.
- Δημιουργήστε ένα νέο βιβλίο εργασίας Excel και στη συνέχεια αποθηκεύστε το με την επέκταση .xlsm
- Για να ξεκινήσετε την οθόνη του Visual Basic, χρησιμοποιήστε το ALT + F11
- Εισαγωγή νέας μονάδας
- Αντιγράψτε τον παρακάτω κώδικα στην τυπική μονάδα VB
Βρόχος 1 (Εμφάνιση αριθμού με msgbox)
Sub Loop1 () Dim StartNumber As Integer Dim EndNumber As Integer EndNumber = 5 For StartNumber = 1 To EndNumber MsgBox StartNumber & "is" & "Your StartNumber" Next StartNumber End Sub
Επεξήγηση κώδικα:
- Ο κώδικας VBA χρειάζεται να εκχωρήσετε τιμή στο StartNumber, όπου το EndNumber είναι μεταβλητές που δηλώνονται ως ακέραιοι ως σημείο εκκίνησης για τον βρόχο σας
- Αυτές οι τιμές μπορεί να είναι οποιοσδήποτε αριθμός και έχουμε το EndNumber ως 5
- Το StartNumber ξεκινάει στο 1
- Για StartNumber = 1 To EndNumber σημαίνει ότι ο κωδικός θα ξεκινά από 1 (StartNumber) έως 5 (EndNumber)
- Το MsgBox StartNumber & "is" & "Your StartNumber" θα εμφανίσει το ακόλουθο πλαίσιο μηνυμάτων
Loop2 (Συμπληρώστε τιμές)
Sub Loop2 () 'Συμπληρώνει τα κελιά A1: A56 με τιμές X με βρόχο' --- Σχόλιο 'Αύξηση τιμής X κατά 1 σε κάθε βρόχο' --- Σχόλιο Dim X ως ακέραιος για X = 1 έως 56 εύρος ("A "& X). Αξία = X Επόμενο Χ Τέλος υπο
Επεξήγηση κώδικα:
- Έχουμε εκχωρήσει το Χ ως ακέραιο
- Για Χ = 1 έως 56. αυτό θα ξεκινήσει με 1 και θα συνεχιστεί μέχρι το 56 με προσαύξηση 1 κάθε φορά
- Εύρος ("A" & X). Αξία = X; αυτή η γραμμή θα αποθηκεύσει την τιμή του Χ και θα περάσει στο εύρος Α1 έως Α56
Loop3 (Γεμίστε κελιά με χρώμα φόντου)
Sub Loop3 () 'Συμπληρώνει κελιά B1: B56 με τα 56 χρώματα φόντου' --- Σχόλιο Dim X ως ακέραιος για X = 1 έως 56 εύρος ("B" & X). Επιλέξτε με επιλογή. Εσωτερικό .ColorIndex = X .Πρότυπο = xlΣτερεό Τέλος Με Επόμενο Χ Τέλος Υπο
Επεξήγηση κώδικα:
- Έχουμε εκχωρήσει το Χ ως ακέραιο
- Για X = 1 έως 56 θα ξεκινήσει με 1 και θα συνεχίσει έως το 56 με προσαύξηση 1 κάθε φορά
- Εύρος ("B" & X) .Επιλέξτε; αυτή η γραμμή θα αποθηκεύσει την τιμή του Χ και θα επιλέξει το κελί Β1 έως το Β56
- Οι επόμενες 4 γραμμές, δηλαδή με επιλογή. Το εσωτερικό θα επιλέξει εσωτερικό δείκτη χρώματος και θα πάρει την τιμή από το Χ του εν λόγω χρωματολογίου, ώστε η 1 να ανήκει στο μαύρο χρώμα. 2 ανήκει στο λευκό χρώμα. 3 για κόκκινο και ούτω καθεξής
Βρόχος 4 (Συμπληρώστε τιμές με προσαύξηση 2)
Από προεπιλογή, η τιμή Βήμα είναι προς τα εμπρός 1, ωστόσο μπορεί να οριστεί σε αριθμό μεγαλύτερο από 1.
Sub Loop4 () 'Συμπληρώνει κάθε δεύτερο κελί από C1: C50 με τιμές X' --- Σχόλιο Dim X ως ακέραιος για X = 1 έως 50 Βήμα 2 Εύρος ("C" & X). Αξία = X Επόμενο X Τέλος Sub
Επεξήγηση κώδικα:
- Έχουμε εκχωρήσει το Χ ως ακέραιο
- Για Χ = 1 έως 50 Βήμα 2; αυτό θα ξεκινήσει με 1 σε Χ έως 50 με προσαύξηση 2 κάθε φορά
- Εύρος ("C" & X). Αξία = X; αυτή η γραμμή θα αποθηκεύσει την τιμή του Χ και θα περάσει στο εύρος C1 έως C50
Βρόχος 5 (VBA For Loop in Reverse with STEP Instruction)
Δεν είναι απαραίτητο ο μετρητής στον βρόχο For να μετακινείται μόνο από χαμηλές σε υψηλότερες τιμές. Αντ 'αυτού, για το βρόχο μπορεί να τρέξει προς τα πίσω, πολύ υψηλή έως χαμηλότερες τιμές.
Παρόλο που η τιμή Step είναι εμπρός 1 από προεπιλογή, ωστόσο, μπορεί να οριστεί σε έναν αριθμό με αντίστροφη σειρά.
Sub Loop5 () 'Γεμίζει κελιά από D1: D50 με τιμές X' --- Σχόλιο 'Σε αυτή την περίπτωση το X μειώνεται κατά 1' --- Σχόλιο Dim X ως ακέραιος, σειρά ως ακέραιος σειρά = 1 Για X = 50 έως 0 Βήμα -1 Εύρος ("D" & Row). Τιμή = X Σειρά = Σειρά + 1 Επόμενο Χ Τέλος υπο
Επεξήγηση κώδικα:
- Έχουμε εκχωρήσει το X & Row ως ακέραιο
- Η γραμμή περιέχει τιμή 1
- Για Χ = 50 έως 0 Βήμα -1. αυτό θα ξεκινήσει από 50 με μείωση κατά 1 σε Χ έως 0
- Εύρος ("D" & Row) .Αξία = X; αυτή η γραμμή θα αποθηκεύσει την τιμή του X και θα περάσει στο εύρος D1 έως D50
Βρόχος 6 (Γεμίζει κάθε δεύτερο κελί αντίστροφα με το ΒΗΜΑ-2)
Στο παραπάνω παράδειγμα για το βρόχο, μπορούμε να χρησιμοποιήσουμε το βήμα και την εντολή για να δούμε αν ο βρόχος Για λειτουργεί προς τα εμπρός ή προς τα πίσω.
Sub Loop6 () 'Συμπληρώνει κάθε δεύτερο κελί από το E1: E100 με τιμές X' --- Σχόλιο 'Σε αυτή την περίπτωση το X μειώνεται κατά 2' --- Σχόλιο Dim X ως ακέραιος, σειρά ως ακέραιος σειρά = 1 Για X = 100 Στο 0 Βήμα -2 Εύρος ("Ε" & Σειρά). Αξία = Χ Σειρά = Σειρά + 2 Επόμενο Χ Τέλος υπο
Επεξήγηση κώδικα:
- Έχουμε εκχωρήσει το X & Row ως ακέραιο
- Η γραμμή περιέχει τιμή 1
- Για Χ = 100 έως 0 Βήμα -2; αυτό θα ξεκινήσει από 100 με μείωση κατά 2 σε Χ έως 0
- Εύρος ("E" & Row) .Αξία = X; αυτή η γραμμή θα αποθηκεύσει την τιμή του Χ και θα περάσει στο εύρος Ε1 έως Ε100
Βρόχος 7 (Για βρόχο με συνθήκη IF: Γεμίζει κελιά ξεκινώντας από συγκεκριμένο κελί)
Αυτό θα γεμίσει τα κελιά από το κελί F11 με τιμή 11 έως ότου το X πληροί την συνθήκη IF
Sub Loop7 () 'Αρχίζει να γεμίζει κελιά F11: F100 με τιμές X' --- Σχόλιο 'Αυτό θα βγει από το βρόχο μετά το 50' --- Σχόλιο Dim X ως ακέραιος για X = 11 έως 100 εύρος ("F" & X) .Αξία = X Αν X = 50 Τότε MsgBox ("Bye Bye") Έξοδος για Τέλος Αν Επόμενο Χ Τέλος Υπο
Επεξήγηση κώδικα:
- Έχουμε εκχωρήσει το Χ ως ακέραιο
- Για Χ = 11 έως 100? θα ξεκινήσει από τις 11 με προσαύξηση κατά 1 στο Χ έως ότου ικανοποιηθεί η συνθήκη
- Εύρος ("F" & X). Αξία = X; αυτή η γραμμή θα αποθηκεύσει την τιμή του Χ και θα περάσει στο εύρος F11 μέχρι να πληροί η συνθήκη
- Αφού εισαγάγετε την τιμή 50 στο κελί F50, θα εμφανιστεί το ακόλουθο πλαίσιο μηνυμάτων
Συμπέρασμα: Με τα παραπάνω 7 παραδείγματα, μπορούμε να εφαρμόσουμε το βρόχο For στο κανονικό ή σε οποιοδήποτε τμήμα αυτοματισμού.
Αν σας άρεσαν τα ιστολόγια μας, μοιραστείτε το με τους φίλους σας στο Facebook. Επίσης, μπορείτε να μας ακολουθήσετε στο Twitter και το Facebook.
Θα θέλαμε πολύ να σας ακούσουμε, ενημερώστε μας πώς μπορούμε να βελτιώσουμε, να συμπληρώσουμε ή να καινοτομήσουμε το έργο μας και να το κάνουμε καλύτερο για εσάς. Γράψτε μας στον ιστότοπο email