Vill du automatisera repetitiva uppgifter i Excel VBA? Lär dig hur du använder Do-While-slingan för att utföra en uppsättning åtgärder upprepade gånger tills ett villkor är uppfyllt.
Slingor är en integrerad del av alla kodningsspråk, och du kan automatisera många repetitiva uppgifter genom att använda en mängd olika slingor, beroende på vilket språk du använder. Excels VBA skiljer sig inte från de andra, eftersom den erbjuder en rad looping-alternativ, som var och en har olika syften.
Du kan använda dessa loopar genom att definiera start- och slutpunkter, villkor och parametrar. En sådan framträdande loop inom VBA är do-while loop, som du kan använda för att arbeta med dataautomatisering. Så här använder du Excel VBA: s do-while loop, en ständigt viktig loopingmetod, som kan förenkla dina manuella uppgifter i stor utsträckning.
Vad är Do-While Loop i Excel VBA?
Gör-under-slingan är ganska enkel; du kan använda den här slingan för att göra dina bud om du vill generera en önskad produktion utifrån ett specifikt tillstånd. Slingan körs tills det eller de definierade villkoren är True. När programmet stöter på ett falskt värde, avslutas slingan och resultatet skrivs ut i de angivna cellerna.
Du kan använda do-while loopen i olika steg och med olika kriterier; du kan till och med använda flera slingor inuti den yttre huvudslingan för att förbättra användningen. Som nybörjare bör du hänvisa till utarbeta Handledning för VBA-programmering för att vidareutveckla dina kunskaper och färdigheter inom detta område.
Do-While Loops syntax i Excel VBA
Do-while-slingan har en fördefinierad struktur som du måste följa för att säkerställa att den fungerar smidigt utan att det uppstår fel. Här är syntaxen som referens:
Domedan [villkorsreferens]
[Kriteria uttalanden]
Slinga
Slingan börjar med nyckelordet do-while, följt av start- och slutreferenserna. Den första delen av syntaxen styr hela slingan. Därefter måste du definiera de satser som kommer att köras varje gång loopen körs.
Slutligen, när loopvillkoret får ett falskt värde, körs loopnyckelordet och lämnar loopen. Detta är en övergripande struktur; du kan förfina den för att utföra olika åtgärder. Här är några exempel för att bekanta dig med hur en do-while-loop fungerar.
Skriver din första do-while loop-kod
Anta att du vill visa multiplerna av två i kolumn A. Villkoret är att skriva ut siffrorna tills räknaren når 20.
För att göra det, navigera till fliken Utvecklare i din Excel och öppna kodningsredigeraren; alternativt tryck Alt + F11 för att öppna kodningsredigeraren direkt. I kodredigeringsfönstret klickar du på Föra in fliken och lägg till en ny modul.
Du måste skriva all kod i detta modulfönster. Lägg till följande kod i modulen:
Sub dowhileloop()
Dim a Som Heltal
a = 1
DoMedan a <= 10
Celler (a, 1) = 2 * a
a = a + 1
Slinga
Slutet Sub
Koden förklaras
Här är en uppdelning av koden som hjälper dig att bemästra grunderna:
- Använd underrutin: För att börja skriva koden i Excel VBA, skapa ett yttre skal med en subrutinfunktion (Sub). Ge det ett meningsfullt namn, som överensstämmer med syftet med koden. I det här exemplet kan du använda namnet dowhileloop, följt av ().
- Definiera datatyper: Dimensionsfunktionen (dim) måste användas för att deklarera variabeldatatyperna. Genom att deklarera datatypen kan du göra din kod effektiv och förbättra exekveringshastigheten. I det här fallet variabeln a lagrar heltalsvärden, så använd heltalsdatatypen för att definiera den. Du kan lagra startradens nummer i denna variabel för att deklarera startdatapunkten för din do-while loop.
- Definiera villkor(er): Nu är det dags att klara av villkoret för att kontrollera do-while-slingan. Du kan använda göra medan sökord, följt av villkoret. Eftersom du vill köra loopen tio gånger använder du villkoret a < = 10.
- Godkänn de körbara uttalandena: Det är viktigt för dig att veta skillnaden mellan Cellfunktionen och Range-funktionen i VBA. Cellfunktionen använder rad- och kolumnreferenserna inom VBA. Till exempel, under den första iterationen, när värdet på a =1, är cellformeln (1,1). I VBA: s minne översätts detta till cell A1. Varje gång loopen körs ökar värdet på den definierade variabeln och referensen flyttas till nästa tillgängliga cell.
- Öka din variabel: Du kan passera a = a + 1 uttalande för att öka cellvärdena. Detta flyttar slingan till nästa del av villkoret; slingan fortsätter att köras tills villkoret får ett falskt värde.
- Avsluta loop-tillståndet: När villkoret är False, avslutas loopen med nyckelordet Loop, och slutligen avslutas subrutinen med nyckelordet End Sub.
- Exekvera koden: Eftersom koden är klar, tryck helt enkelt på F5 nyckel eller den gröna uppspelningsknappen på den övre menyraden för att exekvera koden.
Det slutliga resultatet visar en lista med siffror från 2-20 i kolumn A.
Använda en förfylld kolumn som looptillstånd
Nu när du har förstått syntaxen och nyanserna i att konstruera en grundläggande struktur, varför inte skriva en annan kod för att skriva ut liknande siffror baserat på redan existerande kriterier? Du kan till exempel skapa ett loopvillkor som väljer sin cue från kolumn A och skriver ut resultatet i kolumn B.
Baserat på det totala antalet fyllda celler i kolumn A kan du skriva ut multiplar av två i kolumn B. Slingan kör baskolumn A: s totala antal förbefolkade celler. Eftersom startradens värde är ett (a =1), är slutvärdet dynamiskt och beräknas automatiskt av do-while-loopen.
Med hjälp av dess radvärde går koden genom varje cell i kolumn A och multiplicerar talet med 2. Utgången visas i kolumn B.
Om det finns fler än tio värden i kolumn A, kommer loopen att köras tills den stöter på ett tomt värde i den första kolumnen. På samma sätt kan du skriva ännu mer komplexa villkor inom do-while-slingan och använda den för att kontrollera villkor och visa utdata efter behov.
Använda ett IF-uttalande inom en Do-While-loop
Precis som kapslade loopar kan du använda IF-satsen i Do-While-loopen för att lägga till ytterligare ett villkorslager. I ett sådant fall kör do-while-loopen hela loopen tills villkoret är False, och den inre IF-satsen körs varje gång loopen körs.
I exemplet nedan cirkulerar do-while-loopen genom varje cell i kolumn A, tills den stöter på en tom cell. Därefter kontrollerar IF-satsen värdet för varje cell i kolumn A och skriver ut resultatet i kolumn B. Så snart den yttre slingan möter en tom cell i kolumn A, stannar slingan och lämnar subrutinen.
Utgången är som följer:
Tills värdet i kolumn A är mindre än lika med fem, är det resulterande värdet i kolumn B fem. I A6, eftersom cellvärdet är större än fem, blir resultatet sju, vilket är synkroniserat med IF-villkoret.
Att reda ut VBA: s mångfacetterade funktioner
Excel och VBA utgör en mycket gynnsam kombination för att utföra avancerad dataanalys. Även utan VBA kan du använda olika logiska Excel-funktioner för att utföra komplicerade uppgifter, vilket exemplifierar dina programmeringskunskaper.
Om du är intresserad av dataanalys och använder Excel i dina vanliga aktiviteter kan du ha stor nytta av att använda Excels mångfacetterade logiska funktioner.