Excel VBA-Code, ON Variable GOTO Alternativen

Excel VBA-Code, ON Variable GOTO Alternativen

Ich habe die Vor- und Nachteile von ON X GOTOAnweisungen gelesen und bin mir der Alternativen zu Calls und Jmp sowie der Tatsache bewusst, dass dies als schlechte Praxis gilt, hätte aber gerne eine einfache alternative Lösung für deren Verwendung. Ebenso (nicht nur aus Faulheit) scheint die Verwendung umfangreicher Codezeilen für jede Alternative ineffizient und nicht so leicht zu lesen.

Im Wesentlichen hätte ich gerne eine einfache Alternative zu Folgendem (in englischem Code geschrieben, nicht in einem bestimmten Code, aber in VBA erforderlich):

Input x

On x Goto LineA, LineB, LineC

LineA....
End

LineB....
End

LineC....
End

oder:

List of alternatives (choice = 1, choice = 2, choice = 3)

Input choice

on choice someVariable = string1, string2, string3

(Remaining code which uses that string)

Beide sind sehr ähnlich, wobei zu berücksichtigen ist, dass die Liste beliebig lang sein kann und die Zeichenfolgen länger sein können, jedoch durch eine einzelne Anweisung ausgewählt werden können, anstatt in jedem Einzelfall zu neuen Codezeilen zu springen.

Antwort1

Ignorieren Sie bewährte Methoden und Ratschläge nicht. Dieser Code ist perfekt lesbar und tut, was Sie brauchen, ohne Regeln zu verletzen ...

Sub test()

  Select Case InputBox("Enter a value")

    Case "1"
      'Do things that are specific to "1"
       Beep
      'Or better still, call a specific sub
      DoSomething1
    Case "2"
      'Do things that are specific to "2"
       Beep
      'Or better still, call a specific sub
      DoSomething2
    Case "3"
      'Do things that are specific to "3"
      Beep
      'Or better still, call a specific sub
      DoSomething3
    Case Else
      'Do Nothing

  End Select

End Sub

Sub DoSomething1()
  Beep
End Sub

Sub DoSomething2()
  Beep
  Beep
End Sub

Sub DoSomething3()
  Beep
  Beep
  Beep
End Sub

verwandte Informationen