如果那么在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真正的结束分。 我想要所有的条件是真实的执行。 所以现在如果Label2 = 0,button被禁用,程序结束。 我希望它继续检查标签的其余部分。 我确定这是一个别/如果然后问题。

你不需要ElseIfs。

如果你想testing所有条件,然后单独testing它们

 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 

只是为了上市,这是另一种可能性:

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

当使用If-Else时,只有其中一个会发生如果有条件的块(这将是第一个是真的)。 如果你想每一个发生,然后使用4个独立的IF条件语句。

不要使用ElseIf :使用单独的If/Then/End If所有标签的结构。

你必须改变你的代码:

 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