如果那么在vba声明

时间:2011-04-15 15:43:57

标签: excel vba

我有以下代码:

If Label1 = 0 Then
btn1.Enabled = False
ElseIf Label2 = 0 Then
btn2.Enabled = False
ElseIf Label3 = 0 Then
btn3.Enabled = False
ElseIf Label4 = 0 Then
btn4.Enabled = False

End If
End If
End If

End Sub

现在当它在一个条件ios true之后运行它结束sub。我希望所有条件都是真实的。所以,如果Label2 = 0,则按钮被禁用并且程序结束。我希望它继续检查其余的标签。我确定这是别的/如果那么问题。

5 个答案:

答案 0 :(得分:4)

您不需要ElseIfs。

如果您想测试所有条件,请单独测试

If Label1 = 0 Then
btn1.Enabled = False
End If
If Label2 = 0 Then
btn2.Enabled = False
End If
If Label3 = 0 Then
btn3.Enabled = False
End If
If Label4 = 0 Then
btn4.Enabled = False
End If

答案 1 :(得分:3)

仅仅为了列出,这是另一种可能性:

btn1.Enabled = (Label1 <> 0)
btn2.Enabled = (Label2 <> 0) 
btn3.Enabled = (Label3 <> 0) 
btn4.Enabled = (Label4 <> 0) 

答案 2 :(得分:1)

使用If-Else时只会发生其中一个If条件块(它将是第一个为true)。如果你想要每一个都发生,那么使用4个单独的IF条件语句。

答案 3 :(得分:0)

请勿使用ElseIf:对所有标签使用单独的If/Then/End If结构。

答案 4 :(得分:0)

您必须将代码更改为:

If Label1 = 0 Then btn1.Enabled = False
If Label2 = 0 Then btn2.Enabled = False
If Label3 = 0 Then btn3.Enabled = False
If Label4 = 0 Then btn4.Enabled = False

End Sub
相关问题