Если тогда заявление в VBA - PullRequest
       5

Если тогда заявление в VBA

0 голосов
/ 15 апреля 2011

У меня есть следующий код:

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, кнопка отключена, и программа заканчивается.Я хочу, чтобы он продолжал проверять остальные ярлыки.Я уверен, что это еще одна проблема / If Then.

Ответы [ 5 ]

4 голосов
/ 15 апреля 2011

Вам не нужны 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
3 голосов
/ 15 апреля 2011

Просто для перечисления, есть еще одна возможность:

btn1.Enabled = (Label1 <> 0)
btn2.Enabled = (Label2 <> 0) 
btn3.Enabled = (Label3 <> 0) 
btn4.Enabled = (Label4 <> 0) 
1 голос
/ 15 апреля 2011

При использовании условного блока If-Else If будет происходить только одно из них (это будет первый истинный блок). Если вы хотите, чтобы каждый из них происходил, используйте 4 отдельных условных оператора IF.

0 голосов
/ 15 апреля 2011

Вы должны изменить свой код на:

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
0 голосов
/ 15 апреля 2011

Не использовать ElseIf: использовать отдельные If/Then/End If структуры для всех меток.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...