Código Excel VBA, alternativas ON variable GOTO

Código Excel VBA, alternativas ON variable GOTO

He leído los pros y los contras de ON X GOTOlas declaraciones y soy muy consciente de las alternativas de Calls y Jmp y del hecho de que se considera una mala práctica, pero me gustaría una solución alternativa simple a su uso. De la misma manera (no solo por pereza), el uso de líneas extensas de código para cada alternativa parece ineficiente y no tan fácil de leer.

En esencia, me gustaría una alternativa simple a la siguiente (escrita en código en inglés en lugar de cualquier código específico pero necesario en VBA):

Input x

On x Goto LineA, LineB, LineC

LineA....
End

LineB....
End

LineC....
End

o:

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

Input choice

on choice someVariable = string1, string2, string3

(Remaining code which uses that string)

Ambos son muy similares, teniendo en cuenta que la lista puede tener cualquier longitud y las cadenas pueden ser más largas, pero seleccionadas mediante una sola declaración en lugar de saltar a nuevas líneas de código en cada caso específico.

Respuesta1

No ignore las mejores prácticas y los consejos. Este código es perfectamente legible y hace lo que necesitas sin romper las reglas...

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

información relacionada