2016-08-31 178 views
0

當條件滿足時,下面的案例陳述不起作用。VBA中的案例陳述

Dim TemplatePick As String 

Select Case TemplatePick 

Case OptCreate.Value = True 
Call WebFormInfo 

Case OptModify = True 
Call ModifyTemplate 

' many more case statement to come 
End Select 
+3

選擇的情況下被用來測試在這種情況下,一個值'TemplatePick'那麼情況是'案「A」'這將當TemplatePick =「A」時觸發 –

+0

您的測試案例(TemplatePick)與您的條件(案例陳述後)不符。瞭解更多[這裏](https://www.techonthenet.com/excel/formulas/case.php)。 – PartyHatPanda

+0

如果您試圖實現可能的多個條件語句,您將需要'If'語句而不是'Case'開關。 –

回答

2

選擇的情況下被使用在這種情況下TemplatePick測試一個值,那麼情況是Case "A"這將火的時候,TemplatePick =「A」

所以這個工作:

Select Case True 

Case OptCreate.Value 
Call WebFormInfo 

Case OptModify 
Call ModifyTemplate 

' many more case statement to come 
End Select 

現在需要選擇案例的一個警告,一旦發現匹配,它會忽略所有其他案例。換句話說,如果OptCreate.Value爲真,則它將停止並且不測試OptModify是否爲真。

+0

'Select Case True'? –

+1

@DavidZemens是的,它基本上將案件陳述變成了「ELSEIF」陳述。 –

+0

有趣的......所以它會繼續處理'假'情況,直到它遇到第一個'真'情況。 –

0

您的案例測試表達式(TemplatePick)與您的表達式列表(OptCreate.Value,OptMOdify)不一樣。我很難理解你在做什麼。適當的結構會是這個樣子:

Dim TemplatePick As String 

Select Case TemplatePick 

Case "Template 1" 
Call WebFormInfo 
Case "Template 2" 
Call ModifyTemplate 
... 
case Else 
    'Do default behavior 
End Select 

更多資源https://msdn.microsoft.com/en-us/library/cy37t14y.aspx