Excel VBA 程式碼,ON 變數 GOTO 替代方案

Excel VBA 程式碼,ON 變數 GOTO 替代方案

我已經閱讀了語句的資料優缺點ON X GOTO,並且非常了解 Calls 和 Jmp 替代方案,並且事實上它被認為是不好的做法,但希望有一個簡單的替代解決方案來使用它。同樣(不僅僅是懶惰),但為每個替代方案使用大量代碼似乎效率低下並且不易於閱讀。

本質上,我想要一個簡單的替代方案(用英語程式碼而不是任何特定程式碼編寫,但在 VBA 中需要):

Input x

On x Goto LineA, LineB, LineC

LineA....
End

LineB....
End

LineC....
End

或者:

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

Input choice

on choice someVariable = string1, string2, string3

(Remaining code which uses that string)

兩者非常相似,請記住列表可以是任意長度並且字串可以更長,但由單個語句選擇,而不是在每個特定情況下跳到新程式碼行。

答案1

不要忽視最佳實踐和建議。該程式碼完全可讀,並且可以在不違反規則的情況下滿足您的需求...

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

相關內容