Hoe gebruik ik de do while-lus in vba?

VBA Do while is een lus waarin u een voorwaarde moet opgeven en die voorwaarde moet waar blijven om de lus uit te voeren. In eenvoudige woorden: eerst controleert het of de voorwaarde die u hebt opgegeven waar is of niet, en als die voorwaarde waar is, voert het de lus uit, anders niets.

In elke iteratie wordt de voorwaarde getest en pas daarna wordt de instructie uitgevoerd. Stel je voor dat je werkbladen in Excel wilt toevoegen , maar het volledige aantal werkbladen is 12 of minder. In dit geval kunt u de do-while-lus gebruiken om deze code te schrijven.

Syntaxis

Hier is de VBA-syntaxis voor elke volgende lus.

 Do While Condition [statements] Loop
vba-do-while-loop-condition-statement
  1. Voorwaarde: Dit is de voorwaarde die u opgeeft en deze voorwaarde moet waar zijn om de lus uit te voeren.
  2. Verklaring : De coderegel(s) waarop u wilt dat de Do While-lus de voorwaarde uitvoert, is waar.
  3. Loop : Dit is de eindinstructie van een iteratie van de lus en vertelt VBA om terug te gaan om de voorwaarde opnieuw te testen.

Voorbeeld om de DO While-lus te begrijpen

Om Do While Loop te begrijpen, gaan we een code schrijven om werkbladen aan een werkmap toe te voegen als het totale aantal werkbladen minder dan twaalf is. U hoeft VBA niet te vertellen hoeveel bladen u moet toevoegen en elke keer dat u deze code uitvoert, beschikt u altijd over een totaal van 12 bladen.

Gebruik de volgende stappen:

  1. Allereerst moet u “Do While” op het toetsenbord typen.
    type-the-keyword-do-while
  2. Vervolgens moet u een voorwaarde schrijven die kan controleren of het totale aantal werkbladen in de werkmap minder dan twaalf is.
  3. Om dit te doen, moet u de onderstaande code gebruiken, die het totale aantal werkbladen telt en dit vervolgens vergelijkt met het getal twaalf.
    condition-to-check-worksheets
  4. Vervolgens moet u de code schrijven om een werkblad toe te voegen. Deze code wordt uitgevoerd als de door u opgegeven voorwaarde waar is.
    code-to-add-worksheet
  5. En typ aan het einde het trefwoord “Loop” om de code te voltooien.
    type-loop-to-end-the-code

Hier is de volledige code die je zojuist hebt geschreven:

 Sub vba_do_while_loop() Do While ActiveWorkbook.Worksheets.Count < 12 Sheets.Add Loop End Sub

Laat me nu uitleggen hoe deze code werkt: De door u opgegeven voorwaarde controleert het totale aantal werkbladen in de werkmap, en dan hebt u een kleiner dan-operator die het aantal werkbladen vergelijkt met twaalf.

Wanneer het aantal werkbladen minder dan twaalf is, blijft de lus doorgaan en worden er nieuwe werkbladen toegevoegd, maar zodra het aantal werkbladen twaalf bereikt, stopt de lus.

Dit komt er in eenvoudige bewoordingen op neer dat de lus blijft lopen zolang het aantal werkbladen minder dan twaalf bedraagt.

voorbeeld van een do-while-lus

Het punt is dat u met de code die u zojuist hebt geschreven niet het aantal werkbladen hoeft op te geven dat u wilt toevoegen, maar als u naar de volgende lus gaat, moet u het aantal werkbladen opgeven dat u wilt toevoegen.

Maak een lus voor

Do Loop While is een uitgebreide versie van Do While Loop omdat het hetzelfde werkt, maar er is een klein verschil bij het testen van de voorwaarde.

In Do Loop Terwijl het één iteratie van de lus uitvoert voordat de door u opgegeven voorwaarde wordt getest, en als de voorwaarde waar is, blijft het in een lus lopen.

Stel dat u code wilt schrijven om een wachtwoord te controleren, om code uit te voeren en door te gaan met herhalen terwijl het wachtwoord onjuist is (we zien dit in het voorbeeld).

Syntaxis

Hier is de syntaxis van VBA Do Loop While.

syntaxis-voor-vba-do-loop-while
  1. Do: dit is het startsleutelwoord van de Do While-lus.
  2. Verklaring: Dit zijn de coderegels die u in de lus wilt uitvoeren.
  3. Loop While: Dit is het sleutelwoord om de lus voort te zetten en de door u opgegeven voorwaarde te testen.
  4. Voorwaarde: Dit is de voorwaarde die u wilt testen voordat de lus aan zijn tweede iteratie begint en de lus voortzet.

Zoals je kunt zien in de syntaxis van Do Loop While, zal het de instructie eerst één keer uitvoeren, daarna naar de voorwaarde gaan en deze testen, en als die voorwaarde waar is, zal het de lus starten en doorgaan terwijl de voorwaarde is WAAR.

Voorbeeld om de DO-lus while te begrijpen

Om de do while-lus te begrijpen, gaan we wat code schrijven om een invoervak weer te geven en de gebruiker te vragen het wachtwoord in te voeren.

Dit invoervak blijft maximaal vijf pogingen duidelijk aangeven dat het door de gebruiker ingevoerde wachtwoord onjuist is en daarna verdwijnt het invoervak zonder dat de procedure wordt uitgevoerd.

  1. Declareer eerst twee variabelen die u nodig hebt om het wachtwoord en de pogingsteller op te slaan.
    declare-two-variables-you-need-for-storing
  2. Typ daarna het trefwoord “Doen”. Hier hoeft u niet eerst de voorwaarde te definiëren, zoals u in de syntaxis zag.
    type-the-do-keyword
  3. Vervolgens moet u een regel code schrijven om het invoervak weer te geven waarin de gebruiker wordt gevraagd het wachtwoord in te voeren.
    write-a-line-of-code
  4. Vanaf hier moet u een teller instellen die tot vijf kan tellen (opgeteld bij elke lus-iteratie).
    define-a-counter
  5. Typ nu het trefwoord “Loop While” en stel twee voorwaarden in waarmee de door de gebruiker ingevoerde waarde in het invoervak kan worden gecontroleerd en de tellerwaarde kan worden getest als deze kleiner is dan 5.
    type-keyword-loop-while-and-define-two-condition
  6. Schrijf aan het einde de code die u wilt uitvoeren. Hier gebruik ik de IF-instructie die een berichtvenster weergeeft als het door de gebruiker ingevoerde wachtwoord correct is.
    write-the-code-you-want-to-run
 Sub vba_do_loop_while() Dim varPassword As Variant, i As Double Do varPassword = InputBox _ ("Enter the password to start the procedure:", _ "Check Password 1.0") i = i + 1 Loop While varPassword <> "CorrectPassword" And i < 5 If varPassword = "CorrectPassword" Then MsgBox "Your Password is Correct" End If End Sub

Laat me deze code aan je uitleggen.

  • In het eerste deel van deze code heb je de do while-lus, die een invoervak voor de gebruiker weergeeft en hem om een wachtwoord vraagt .
  • En als het wachtwoord onjuist is, blijft de lus doorgaan totdat de gebruiker het juiste wachtwoord invoert.
  • Maar omdat je een teller gebruikt om de iteraties van de lus te tellen en zodra deze teller 5 bereikt, stopt de lus .

Voeg een reactie toe

Je e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *