2016-08-31 135 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