Hoe de goto-instructie in vba-code te gebruiken?
De VBA GoTo-instructie helpt de code-uitvoering naar een specifieke regel in de procedure te navigeren. Simpel gezegd springt VBA met de goto-instructie naar een bepaalde regel die u hebt opgegeven. Als u bijvoorbeeld hebt opgegeven om naar de tweede regel te springen, springt go naar die regel.
Hoe de VBA GoTo-instructie in code te gebruiken
- Eerst moet je de goto-instructie gebruiken.
- Daarna moet je definiëren waar je wilt dat VBA vanaf goto gaat.
- Maak vervolgens de tag aan om deze plaats in de procedure aan te maken.
- Voeg aan het einde de coderegel(s) toe die u wilt uitvoeren.
Sub vba_goto() GoTo Last Range ("A1"). Select Last : Range ("A12"). Select End Sub
Ga naar om een code te herhalen
U kunt ook de instructie go to gebruiken om code te herhalen met behulp van een reeks voorwaarden.
Sub goto_repeat() Dim iMessage As String Question: iMessage = InputBox("what's the day today?") If iMessage <> "tuesday" Then MsgBox ("wrong answer, try again.") GoTo Question Else MsgBox ("that's the right answer.") End If End Sub
Wanneer u de bovenstaande code uitvoert, wordt u om de naam van de dag gevraagd en als u iets anders dan “dinsdag” invoert, wordt de vraag herhaald. Als je naar de code kijkt, kun je zien dat we de goto-instructie en de if-instructie moeten gebruiken.
Wanneer de gebruiker nu iets anders invoert dan het juiste antwoord, dwingt de goto-instructie VBA om de code te herhalen. (maar wanneer je dit soort codes gebruikt, moet je heel voorzichtig zijn, omdat er een eindeloze lus kan ontstaan.
VBA Ga naar einde
Je kunt een sub ook afsluiten met behulp van de goto-instructie.
In de bovenstaande code hebben we de tag “last” gebruikt vlak voor de end-instructie en wanneer VBA de GoTo-instructie bereikt, springt VBA naar de “Last” aan het einde van de procedure.
GoTo-instructie om naar een regel in een andere subroutine te gaan
Nou, naar de statement gaan is best handig om VBA van de ene plaats naar de andere te laten springen, maar het is niet mogelijk om het naar een andere procedure in de module te laten springen.