Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Rücksprung im Sub zu bestimmter Stelle

Forumthread: Rücksprung im Sub zu bestimmter Stelle

Rücksprung im Sub zu bestimmter Stelle
04.11.2008 19:26:45
Tobias
Hallo Leute,
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
Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Rücksprung im Sub zu bestimmter Stelle
04.11.2008 19:29:05
Hajo_Zi
Hallo Tobi,
vieleicht reicht Do Loop.
Sprungmarken werden in VBA eigentlich nicht mehr eingesetzt, da gibt es andere Möglichkeiten
Sprung1:
If ...... Goto Sprung1

AW: Rücksprung im Sub zu bestimmter Stelle
04.11.2008 20:03:56
Tino
Hallo,
hier mal zwei Beispiele die nicht so oft zu sehen sind.

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

Anzeige
AW: Rücksprung im Sub zu bestimmter Stelle
04.11.2008 20:24:14
Tino
Hallo,
um beim ersten Beispiel nicht auf einen Fehler zu laufen, sollte der Code so aussehen.
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

Anzeige
;
Anzeige
Anzeige

Infobox / Tutorial

Rücksprung im Sub zu bestimmter Stelle in VBA


Schritt-für-Schritt-Anleitung

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:

  1. GoTo Methode:

    • Setze einen Sprungmarker an die Stelle, zu der Du springen möchtest.
    • Verwende die 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
  2. GoSub Methode:

    • Definiere einen Subroutine-Block und verwende die GoSub-Anweisung, um zu diesem Block zu springen.
    • Verwende 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

Häufige Fehler und Lösungen

  • Fehler: "Sprungmarke nicht gefunden"

    • Stelle sicher, dass der Sprungmarker korrekt benannt und im richtigen Gültigkeitsbereich ist.
  • Fehler: Endlosschleife durch GoTo

    • Achte darauf, dass der Sprung nicht in eine Endlosschleife führt. Verwende Bedingungen, um sicherzustellen, dass die Schleife terminiert.

Alternative Methoden

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

Praktische Beispiele

Hier sind einige praktische Beispiele für die Verwendung von GoTo und GoSub:

  1. 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
  2. Wiederverwendbare Logik mit GoSub:

    Sub Wiederverwendbar()
       GoSub Berechnung
       Debug.Print "Berechnung abgeschlossen"
       Exit Sub
    
    Berechnung:
       Debug.Print "Berechnung läuft..."
       Return
    End Sub

Tipps für Profis

  • Verwende GoSub nur, wenn es wirklich notwendig ist, da es den Code komplex machen kann. Überlege, ob Du stattdessen eine Funktion oder Methode verwenden kannst.
  • Halte Deinen Code übersichtlich, indem Du Sprungmarken sinnvoll benennst.
  • Nutze die Möglichkeit von Fehlerbehandlungen in VBA, um unerwartete Probleme elegant zu lösen.

FAQ: Häufige Fragen

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.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige