mal wieder ne Frage.
Wenn ich im Coding eine Prüfung habe und die triff zu soll er im Sub zu einer bestimmte Stelle zurückspringen. Wie ist das möglich.
Gibt es da Marker die man setzte kannn?
Steh irgenwie auf dem Schlauch
Grüße
Tobi
Sub Test() 'mit Return
GoSub Fehler1
Debug.Print 1
Debug.Print 2
Debug.Print 3
Debug.Print 4
Fehler1:
Return
End Sub
Sub Test1() 'Zeilennummer 1 und zwei beachten
Dim i As Integer
GoTo 2
1 Debug.Print 1
Debug.Print 2
Debug.Print 3
Debug.Print 4
2 i = i + 1
If i < 3 Then GoTo 1
End Sub
Gruß Tino
Sub Test() 'mit Return
GoSub Fehler1
Debug.Print 1
Debug.Print 2
Debug.Print 3
Debug.Print 4
Exit Sub
Fehler1:
Return
End Sub
Gruß Tino
Um in VBA (Visual Basic for Applications) zu einer bestimmten Stelle innerhalb eines Sub zurückzuspringen, kannst Du die Anweisungen GoTo oder GoSub verwenden. Hier sind die Schritte für beide Methoden:
GoTo Methode:
GoTo-Anweisung, um zu diesem Marker zu springen.Beispiel:
Sub BeispielGoTo()
Dim i As Integer
i = 0
GoTo Sprungmarke
Sprungmarke:
i = i + 1
Debug.Print i
End Sub
GoSub Methode:
GoSub-Anweisung, um zu diesem Block zu springen.Return, um zur Stelle nach dem GoSub zurückzukehren.Beispiel:
Sub BeispielGoSub()
GoSub SubRoutine
Debug.Print "Hier nach der Subroutine"
Exit Sub
SubRoutine:
Debug.Print "In der Subroutine"
Return
End Sub
Fehler: "Sprungmarke nicht gefunden"
Fehler: Endlosschleife durch GoTo
Zusätzlich zu GoTo und GoSub kannst Du auch Schleifen wie Do...Loop oder For...Next verwenden, um den Programmfluss zu steuern, ohne auf Sprungmarken zurückgreifen zu müssen. Dies kann den Code lesbarer und wartungsfreundlicher machen.
Beispiel mit Do...Loop:
Sub BeispielDoLoop()
Dim i As Integer
i = 0
Do While i < 3
i = i + 1
Debug.Print i
Loop
End Sub
Hier sind einige praktische Beispiele für die Verwendung von GoTo und GoSub:
Fehlerbehandlung mit GoTo:
Sub FehlerBehandlung()
On Error GoTo Fehler
Debug.Print 1 / 0 ' Dies erzeugt einen Fehler
Exit Sub
Fehler:
Debug.Print "Ein Fehler ist aufgetreten!"
End Sub
Wiederverwendbare Logik mit GoSub:
Sub Wiederverwendbar()
GoSub Berechnung
Debug.Print "Berechnung abgeschlossen"
Exit Sub
Berechnung:
Debug.Print "Berechnung läuft..."
Return
End Sub
GoSub nur, wenn es wirklich notwendig ist, da es den Code komplex machen kann. Überlege, ob Du stattdessen eine Funktion oder Methode verwenden kannst.1. Kann ich GoTo in allen Versionen von Excel verwenden?
Ja, GoTo ist in allen Versionen von Excel VBA verfügbar.
2. Was sind die Nachteile der Verwendung von GoTo?
Die Verwendung von GoTo kann den Code unübersichtlich machen und die Wartbarkeit erschweren. Es ist oft besser, strukturierte Programmiertechniken zu verwenden.
3. Gibt es Alternativen zu GoSub?
Ja, Du kannst Funktionen und Subroutinen verwenden, um wiederverwendbare Logik zu kapseln, anstatt GoSub zu nutzen.