Select Case cmd
case "ONE": MsgBox "one"
case "TWO": MsgBox "two"
case "THREE": MsgBox "three"
End select
我的要求是,如果cmd = "ONE"
我需要"one"
然後"two"
不過目前顯示我正在"one"
顯示,然後程序被打破了選擇案例...
Select Case cmd
case "ONE": MsgBox "one"
case "TWO": MsgBox "two"
case "THREE": MsgBox "three"
End select
我的要求是,如果cmd = "ONE"
我需要"one"
然後"two"
不過目前顯示我正在"one"
顯示,然後程序被打破了選擇案例...
Select Case cmd
case "ONE", "TWO":
if cmd = "ONE" THEN
MsgBox "one"
end if
MsgBox "two"
case "THREE": MsgBox "three"
End select
請記住我的切入點,以防在這種情況下「ONE」不會打印任何內容... – 2009-10-12 21:12:14
我正在嘗試幫助先生,修復。 – manji 2009-10-12 21:22:01
不錯的一個!該語法爲我工作! :) – 2009-10-12 21:51:13
一些如果可以做這項工作:
If cmd = "ONE" Then
MsgBox "one"
cmd = "TWO"
End If
If cmd = "TWO" Then
MsgBox "two"
cmd = "THREE"
End If
If Cmd = "THREE" Then
MsgBox "three"
End If
不錯的解決方法!我會建議這個答案:) – seadoggie01 2017-05-04 18:51:12
這是設計。 http://msdn.microsoft.com/en-us/library/ee177199%28PROT.10%29.aspx
您可以嘗試使用'goto'或過程調用來解決它。
好!我可以做一些事情,比如輸入大寫「ONE」:做一些處理,然後說GOTO case「TWO」或者在「TWO」語句的情況下添加一些標籤。 – 2009-10-12 21:11:36
是的,但它會非常難看且非常難以調試(並且任何繼承代碼的人都不會高興不得不通過「意大利麪條代碼」)。 – 2009-10-12 21:39:35
你只需要很長的路要走。
Select Case cmd
case "ONE": MsgBox "one"
MsgBox "two"
MsgBox "three"
case "TWO": MsgBox "two"
MsgBox "three"
case "THREE": MsgBox "three"
End select
爲什麼使用Select Case來做這件事?你所做的只是打印「cmd」值的小寫版本。
If cmd = "ONE" Then
MsgBox LCase$(cmd)
MsgBox "two"
Else
Msgbox LCase$(cmd)
End If
其實我只是爲了描述目的而顯示小寫字母,實際上在這些情況下將會有代碼寫成。我想要的條件是如果程序通過cmd =「ONE」進入,它應該在「ONE」中執行一些代碼然後穿過'到'兩個'... – 2009-10-16 13:30:39
GoTo會工作的很好,我想。
Select Case cmd
Case "ONE"
MsgBox "one"
GoTo AfterONE:
Case "TWO"
AfterONE:
MsgBox "two"
Case "THREE"
MsgBox "three"
End Select
它的工作原理;我測試了它。
如果cmd =「two」會發生什麼? – Gratzy 2009-10-12 21:06:04
我_think_這是由設計;該代碼會在案例中的最後一條語句後自動跳轉到最後。相反,您將不得不圍繞它編程(例如使用過程)。 – 2009-10-12 21:06:05
@Gratzy:如果cmd =「two」,它應該默認打印「two」並突然出現......我想這是VBA中的默認行爲。我認爲VBA隱含地在每個case後添加「break」語句,即I想繞過。 – 2009-10-12 21:09:25