VBA Break For Loop | Πώς να βγείτε για βρόχο στο Excel VBA;

Excel VBA Break For Loop

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

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

Πώς να σπάσετε / βγείτε Loops στο VBA

Μπορείτε να κατεβάσετε αυτό το πρότυπο VBA Break For Loop Excel εδώ - Πρότυπο VBA Break For Loop Excel

# 1 - Break για επόμενο βρόχο

Το VBA For Next Loop χρησιμοποιείται για την εναλλαγή κυψελών και την εκτέλεση συγκεκριμένων εργασιών. Για παράδειγμα, δείτε τον παρακάτω κώδικα VBA.

Κώδικας:

 Sub Exit_Loop () Dim K Όσο για K = 1 έως 10 Cells (K, 1). Value = K Next K End Sub 

Αυτό θα εισαγάγει σειριακούς αριθμούς από το κελί A1 έως A10.

Αυτό είναι το προφανές πράγμα με το For Next Loop.

Τώρα θέλω να σπάσω το βρόχο όταν βρεθεί οποιαδήποτε τιμή στα πρώτα 10 κελιά, γι 'αυτό έχω εισάγει κάποια τιμή κειμένου στο κελί A8.

Τώρα θέλω να το καθοδηγήσω στον κώδικα λέγοντας «εάν το κελί looping έχει συγκεκριμένη τιμή, πρέπει να βγεί από το loop πριν από το προκαθορισμένο όριο»

Κώδικας:

 Sub Exit_Loop () Dim K As Long For K = 1 to 10 If Cells (K, 1). Value = "" Then Cells (K, 1). Value = K Else Exit For End if Next K End Sub 

Κοιτάξτε αυτές τις γραμμές κώδικα:

If Cells (K, 1). Value = "" Τότε

Κελιά (K, 1). Τιμή = Κ

Αλλού

  Έξοδος για

Τέλος εαν

Λέει Εάν τα κελιά (K, 1). Η τιμή = "" κελί επανάληψης είναι ίση με τίποτα, συνεχίστε τον βρόχο εισαγωγής σειριακών αριθμών από 1 έως 10.

Το τελευταίο μέρος του βρόχου λέει:

Αλλού

  Έξοδος για

Εάν η παραπάνω συνθήκη δεν είναι Αληθινή, τότε βρόχος "Έξοδος για".

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

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

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

Κώδικας:

 Sub Exit_Loop () Dim K As Long For K = 1 to 10 If Cells (K, 1). Value = "" Then Cells (K, 1). Value = K Else MsgBox "Έχουμε μη κενά κελιά, στο κελί" Κελιά (K, 1). Διεύθυνση & vbNewLine & "Βγαίνουμε από το βρόχο" Έξοδος για το τέλος αν το επόμενο K End Sub 

Όταν πραγματοποιείται βρόχος μέσω του κελιού, εάν βρεθεί κάποιο μη κενό κελί, θα εμφανιστεί το μήνυμα που λέει "Έχουμε μη κενά κελιά, στο κελί A8. Βγαίνουμε από το βρόχο ».

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

# 2 - Break Do Μέχρι Loop

Όπως και πώς βγήκαμε από το For Next Loop, ομοίως μπορούμε να βγούμε και από το βρόχο "Do Before" Για παράδειγμα, δείτε τον παρακάτω κώδικα.

Κώδικας:

 Sub Exit_DoUntil_Loop () Dim K As Long K = 1 Do S έως K = 11 Cells (K, 1). Value = KK = K + 1 Loop End Sub 

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

Κώδικας:

 Sub Exit_DoUntil_Loop () Dim K As Long K = 1 Do έως K = 11 If K <6 Then Cells (K, 1). Value = K Else Exit Do End if K = K + 1 Loop End Sub 

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

Κώδικας:

 Sub Exit_DoUntil_Loop () Dim K As Long K = 1 Do έως K = 11 If K 5 "Exit Do End if K = K + 1 Loop End Sub 

Αυτό θα εμφανίσει το παρακάτω μήνυμα.

Όπως αυτό βασίζεται στα κριτήρια που δίνονται, μπορούμε να βγούμε από τον βρόχο εάν τα κριτήρια είναι ΑΛΗΘΕΙΑ ή αλλιώς μπορούμε να συνεχίσουμε τον βρόχο.


$config[zx-auto] not found$config[zx-overlay] not found