Wilt u repetitieve taken automatiseren in Excel VBA? Leer hoe u de Do-While-lus gebruikt om een ​​reeks acties herhaaldelijk uit te voeren totdat aan een voorwaarde is voldaan.

Lussen vormen een integraal onderdeel van elke codeertaal en u kunt tal van repetitieve taken automatiseren door verschillende lussen te gebruiken, afhankelijk van de beschikbare taal. Excel's VBA verschilt niet van de andere, omdat het een reeks lusopties biedt, die elk een ander doel dienen.

U kunt deze lussen gebruiken door de begin- en eindpunten, voorwaarde(n) en parameters te definiëren. Een van die prominente lus binnen VBA is de do-while-lus, die u kunt gebruiken om met gegevensautomatisering te werken. Hier leest u hoe u de do-while-lus van Excel VBA gebruikt, een altijd essentiële looping-methodologie, die uw handmatige taken in hoge mate kan vereenvoudigen.

Wat is de Do-While-lus in Excel VBA?

De do-while-lus is vrij eenvoudig; u kunt deze lus gebruiken om te bieden als u een gewenste uitvoer wilt genereren op basis van een specifieke voorwaarde. De lus wordt uitgevoerd totdat de gedefinieerde voorwaarde(n) waar is (zijn). Zodra het programma een False-waarde tegenkomt, wordt de lus beëindigd en worden de resultaten in de daarvoor bestemde cellen afgedrukt.

instagram viewer

Je kunt de do-while-lus in verschillende stadia en met verschillende criteria gebruiken; je kunt zelfs meerdere lussen in de buitenste hoofdlus gebruiken om het gebruik ervan te verbeteren. Als beginner moet je verwijzen naar uitwerken VBA-programmeerlessen om je kennis en vaardigheden binnen dit domein te vergroten.

Syntaxis van Do-While Loop in Excel VBA

De do-while-lus heeft een vooraf gedefinieerde structuur die u moet volgen om ervoor te zorgen dat deze soepel en zonder fouten werkt. Hier is de syntaxis ter referentie:

Doenterwijl [voorwaarde_referentie]

[Criteriaverklaringen]

Lus

De lus begint met het do-while-sleutelwoord, gevolgd door de begin- en eindreferenties. Het eerste deel van de syntaxis regelt de hele lus. Vervolgens moet u de instructies definiëren die elke keer dat de lus wordt uitgevoerd, worden uitgevoerd.

Als de lusvoorwaarde ten slotte de waarde False krijgt, wordt het sleutelwoord lus uitgevoerd en verlaat de lus. Dit is een algemene structuur; je kunt het verfijnen om verschillende acties uit te voeren. Hier zijn enkele voorbeelden om vertrouwd te raken met de werking van een doe-terwijl-lus.

Uw eerste doe-terwijl-luscode schrijven

Stel dat u de veelvouden van twee in kolom A wilt weergeven. De voorwaarde is om de nummers af te drukken tot de teller op 20 staat.

Navigeer hiervoor naar het tabblad Ontwikkelaar in uw Excel en open de coderingseditor; of druk op Alt+F11 om de coderingseditor rechtstreeks te openen. Klik in het code-editorvenster op de Invoegen tabblad en voeg een nieuwe module toe.

U moet alle code binnen dit modulevenster schrijven. Voeg de volgende code toe in de module:

Sub dowhileloop()

Dim een Als Geheel getal

een = 1

DoenTerwijl een <= 10

Cellen (a, 1) = 2 * a

een = een + 1

Lus

Einde Sub

De code uitgelegd

Hier is een uitsplitsing van de code om u te helpen de basis onder de knie te krijgen:

  • Gebruik subroutine: Om te beginnen met het schrijven van de code in Excel VBA, maakt u een buitenste schil met een subroutinefunctie (Sub). Geef het een betekenisvolle naam, die resoneert met het doel van de code. In dit voorbeeld kunt u de naam dowhileloop gebruiken, gevolgd door ().
  • Definieer gegevenstypen: De dimensiefunctie (dim) moet worden gebruikt om de variabele gegevenstypen te declareren. Door het gegevenstype te declareren, kunt u uw code efficiënt maken en de uitvoeringssnelheid verbeteren. In dit geval de variabele A slaat integer-waarden op, dus gebruik het datatype integer om het te definiëren. U kunt het beginrijnummer in deze variabele opslaan om het startgegevenspunt van uw do-while-lus te declareren.
  • Conditie(s) definiëren: Nu is het tijd om de voorwaarde door te geven om de do-while-lus te besturen. U kunt de doen terwijl trefwoorden, gevolgd door de voorwaarde. Omdat je de lus tien keer wilt uitvoeren, gebruik je de voorwaarde een < = 10.
  • Geef de uitvoerbare verklaringen door: Het is belangrijk dat u het verschil kent tussen de Cellenfunctie en de bereikfunctie in VBA. De celfunctie gebruikt de rij- en kolomverwijzingen binnen VBA. Bijvoorbeeld, tijdens de eerste iteratie, wanneer de waarde van a =1, is de celformule (1,1). In het geheugen van VBA vertaalt dit zich naar cel A1. Elke keer dat de lus wordt uitgevoerd, neemt de waarde van de gedefinieerde variabele toe en gaat de verwijzing naar de volgende beschikbare cel.
  • Verhoog uw variabele: Je kunt passeren een = een + 1 instructie om de celwaarden te verhogen. Dit verplaatst de lus naar het volgende deel van de voorwaarde; de lus blijft lopen totdat de voorwaarde de waarde False oploopt.
  • Verlaat de Loop-voorwaarde: Zodra de voorwaarde False is, wordt de lus afgesloten met het sleutelwoord Loop en ten slotte wordt de subroutine afgesloten met het sleutelwoord End Sub.
  • De gedragscode uitvoeren: Aangezien de code klaar is, drukt u gewoon op de F5-toets of de groene afspeelknop in de bovenste menubalk om de code uit te voeren.

Het eindresultaat toont een lijst met getallen van 2-20 in kolom A.

Een vooraf ingevulde kolom gebruiken als lusvoorwaarde

Nu je de syntaxis en de nuances van het construeren van een basisstructuur hebt begrepen, kun je nog een code schrijven om vergelijkbare getallen af ​​te drukken op basis van reeds bestaande criteria. U kunt bijvoorbeeld een lusvoorwaarde maken die de cue uit kolom A haalt en de uitvoer in kolom B afdrukt.

Op basis van het totaal aantal gevulde cellen in kolom A kunt u veelvouden van twee afdrukken in kolom B. De lus voert het totale aantal vooraf bevolkte cellen van basiskolom A uit. Aangezien de beginwaarde van de rij één is (a =1), is de eindwaarde dynamisch en wordt deze automatisch berekend door de do-while-lus.

Met behulp van de rijwaarde doorloopt de code elke cel in kolom A en vermenigvuldigt het getal met 2. De uitvoer wordt getoond in kolom B.

Als er meer dan tien waarden in kolom A staan, loopt de lus door totdat deze een blanco waarde tegenkomt in de eerste kolom. Op dezelfde manier kunt u nog complexere voorwaarden binnen de do-while-lus schrijven en deze gebruiken om voorwaarden te controleren en uitvoer weer te geven als dat nodig is.

Een IF-instructie gebruiken binnen een Do-While-lus

Net als geneste lussen kunt u de IF-instructie binnen de Do-While-lus gebruiken om nog een voorwaardelaag toe te voegen. In dat geval voert de do-while-lus de hele lus uit totdat de voorwaarde False is, en wordt de inner IF-instructie uitgevoerd telkens wanneer de lus wordt uitgevoerd.

In het onderstaande voorbeeld doorloopt de do-while-lus elke cel in kolom A totdat deze een lege cel tegenkomt. Vervolgens controleert de IF-instructie de waarde van elke cel in kolom A en drukt de uitvoer af in kolom B. Zodra de buitenste lus een lege cel in kolom A tegenkomt, stopt de lus en verlaat de subroutine.

De uitvoer is als volgt:

Totdat de waarde in kolom A kleiner is dan vijf, is de resulterende waarde in kolom B vijf. Aangezien de celwaarde in A6 groter is dan vijf, is de resulterende uitvoer zeven, dat is synchroon met de IF-voorwaarde.

De veelzijdige functionaliteiten van de VBA ontrafelen

Excel en VBA vormen een zeer gunstige combinatie voor het uitvoeren van geavanceerde data-analyse. Zelfs zonder VBA kunt u verschillende logische Excel-functies gebruiken om gecompliceerde taken uit te voeren, wat uw programmeervaardigheden illustreert.

Als u geïnteresseerd bent in data-analyse en Excel gebruikt in uw reguliere activiteiten, kunt u enorm profiteren van de veelzijdige logische functies van Excel.