/ / / Excel VBA Loop

Excel VBA Loop

Ενιαίος βρόχος | Διπλό βρόχο | Τριπλό βρόχο | Do While Loop

Το Looping είναι μία από τις πιο ισχυρές τεχνικές προγραμματισμού. ΕΝΑ βρόχος σε Excel VBA σας δίνει τη δυνατότητα να κάνετε βρόχο μέσω μιας σειράς κυψελών με λίγες μόνο γραμμές κωδικών.

Ενιαίος βρόχος

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

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

Dim i As Integer

For i = 1 To 6
    Cells(i, 1).Value = 100
Next i

Αποτέλεσμα όταν κάνετε κλικ στο κουμπί εντολών στο φύλλο:

Ενιαίος βρόχος στο Excel VBA

Εξήγηση: Οι γραμμές κώδικα μεταξύ For και Next θα εκτελούνται έξι φορές. Για το i = 1, το Excel VBA εισάγει την τιμή 100 στο κελί στη διασταύρωση της σειράς 1 και της στήλης 1. Όταν το Excel VBA φτάσει στο Next i, αυξάνει i με 1 και μεταπηδά ξανά στη δήλωση For. Για το i = 2, το Excel VBA εισάγει την τιμή 100 στο κελί στη διασταύρωση της σειράς 2 και της στήλης 1 κ.λπ.

Σημείωση: είναι καλή πρακτική να παύετε πάντα την ετικέτα (tab) μεταξύ των λέξεων Για και Επόμενο. Αυτό καθιστά τον κώδικα σας πιο εύκολο να διαβαστεί.

Διπλό βρόχο

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

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

Dim i As Integer, j As Integer

For i = 1 To 6
    For j = 1 To 2
        Cells(i, j).Value = 100
    Next j
Next i

Αποτέλεσμα όταν κάνετε κλικ στο κουμπί εντολών στο φύλλο:

Διπλό βρόχο στο Excel VBA

Εξήγηση: Για το i = 1 και το j = 1, το Excel VBA εισάγει την τιμή 100 στο κελί στη διασταύρωση της σειράς 1 και της στήλης 1. Όταν το Excel VBA φτάσει στο Επόμενο j, αυξάνει το j με 1 και μεταπηδά ξανά στην εντολή For j. Για το i = 1 και το j = 2, το Excel VBA εισάγει την τιμή 100 στο κελί στη διασταύρωση της σειράς 1 και της στήλης 2. Στη συνέχεια, το Excel VBA αγνοεί το Επόμενο j επειδή j εκτελείται μόνο από 1 έως 2. Όταν το Excel VBA φτάσει στο Next i , αυξάνει i με 1 και πηδά πίσω στη δήλωση For i. Για το i = 2 και το j = 1, το Excel VBA εισάγει την τιμή 100 στο κελί στη διασταύρωση της σειράς 2 και της στήλης 1 κ.λπ.

Τριπλό βρόχο

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

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

Dim c As Integer, i As Integer, j As Integer

For c = 1 To 3
    For i = 1 To 6
        For j = 1 To 2
            Worksheets(c).Cells(i, j).Value = 100
        Next j
    Next i
Next c

Εξήγηση: Η μόνη αλλαγή που έγινε σε σύγκριση με τον κώδικα του διπλού βρόχου είναι ότι έχουμε προσθέσει έναν ακόμη βρόχο και πρόσθεσε φύλλα εργασίας (c). μπροστά από τα Κύτταρα για να φτάσετε το δισδιάστατο εύρος στο πρώτο φύλλο για το c = 1, το δεύτερο φύλλο για το c = 2 και το τρίτο φύλλο για το c = 3. Κατεβάστε το αρχείο Excel για να δείτε αυτό το αποτέλεσμα.

Do While Loop

Εκτός από τον βρόχο For Next, υπάρχουν και άλλοι βρόχοι στο Excel VBA. Για παράδειγμα, το Do While Loop. Ο κώδικας που τοποθετείται ανάμεσα στο Do While και το Loop θα επαναληφθεί όσο το μέρος μετά το Do While is true.

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

Dim i As Integer
i = 1

Do While i < 6
    Cells(i, 1).Value = 20
    i = i + 1
Loop

Αποτέλεσμα όταν κάνετε κλικ στο κουμπί εντολών στο φύλλο:

Do While Loop

Εξήγηση: όσο το i είναι μικρότερο από 6, το Excel VBA εισάγει την τιμή 20 στο κελί στη διασταύρωση της σειράς i και της στήλης 1 και αυξάνει κατά 1. Στο Excel VBA (και σε άλλες γλώσσες προγραμματισμού), το σύμβολο "=" σημαίνει γίνεται. Δεν σημαίνει ίση. Έτσι i = i + 1 σημαίνει i γίνεται i + 1. Με άλλα λόγια: πάρτε την παρούσα τιμή του i και προσθέστε 1 σε αυτό. Για παράδειγμα, εάν i = 1, γίνεται 1 + 1 = 2. Ως αποτέλεσμα, η τιμή 20 θα τοποθετηθεί στη στήλη A πέντε φορές (όχι έξι επειδή το Excel VBA σταματά όταν το i ισούται με 6).

2. Εισάγετε ορισμένους αριθμούς στη στήλη Α.

Οποιοσδήποτε αριθμός γραμμών

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

Dim i As Integer
i = 1

Do While Cells(i, 1).Value <> ""
    Cells(i, 2).Value = Cells(i, 1).Value + 10
    i = i + 1
Loop

Αποτέλεσμα όταν κάνετε κλικ στο κουμπί εντολών στο φύλλο:

Εξελιγμένη ενέργεια ενώ βρόχος

Επεξήγηση: όσο Κύτταρα (i, 1).Η τιμή δεν είναι κενή (<> σημαίνει ότι δεν είναι ίση με), το Excel VBA εισάγει την τιμή στο κελί στη διασταύρωση της σειράς i και της στήλης 2, δηλαδή 10 υψηλότερη από την τιμή στο κελί στη διασταύρωση της γραμμής i και της στήλης 1 .Το Excel VBA σταματά όταν εγώ ισούται με 7 επειδή τα κελιά (7, 1) .Η τιμή είναι κενή. Αυτός είναι ένας πολύ καλός τρόπος για να βγείτε από κάθε αριθμό γραμμών σε ένα φύλλο εργασίας.

Επίσης διαβάστε: