我已經閱讀了語句的資料優缺點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