2016-05-05 2 views
0

Я попытался написать два выражения If внутри друг друга в VBA, но это дает мне неправильный ответ. Когда я его отлаживаю, он показывает, что программа не проходит через ElseIf и продолжает идти с остальным первым If.Два оператора If внутри друг друга в VBA

Как я могу использовать два оператора If внутри друг друга? Код:

If ConfigBox.Value <> ... Then 

    If ListBox1.Value = ... Then 

      DO SOMETHING 
    Else 
      DO SOMETHING 
    End If 

ElseIf ListBox1.Value = ... Or ListBox1.Value = ... Then 

    DO SOMETHING 
Else 

    DO SOMETHING 
End If 
+0

Можете ли вы объяснить ваши заявления? Что они пытаются сделать? Если/Else/End If работает, почему бы не использовать несколько 'ElseIf'? Можете ли вы немного рассказать о том, что на самом деле ищут утверждения? – BruceWayne

+0

Вы пробовали вложенность 'Select Case' вместо другого' If'? Я предполагаю, что elses и elseifs возились друг с другом в этой структуре. –

+0

Возможно, вы захотите опубликовать свой код, должно быть что-то блокирующее ElseIF, которое пропускается. – Rdster

ответ

1

Ваш вложенности откусил. Вы хотели бы сделать что-то вроде этого:

If ConfigBox.Value <> ... Then 

    If ListBox1.Value = ... Then 
      Code 
    ElseIF ListBox1.Value = ... Or ListBox1.Value = ... Then 
      Code 
    Else 
     Code 'if ListBox1.Value doesn't meet above criteria 
    End If 

Else 
    Code 'if ConfigBox criteria is not met. You could start another nested If for the ListBox1 here too. 

End If 
+0

Эми, если это ответит на ваш вопрос, пожалуйста, примите с зеленой галочкой. – Chrismas007

+0

Да, это вопрос, но как я могу это написать, потому что в этом порядке он будет проходить через неправильные последовательности. – amy

+0

@ Ами как так? Вам нужно будет отредактировать свой вопрос, чтобы объяснить в письменной форме последовательность, которую вы должны проверить. – Chrismas007

0

попробовать с ниже

If ((ConfigBox.Value <> "1") And (ListBox1.Value = "2")) Then 
    'Do Something 
ElseIf ((ConfigBox.Value <> "1") And (ListBox1.Value <> "2")) Then 
    'Do Something 
ElseIf ListBox1.Value = "3" Or ListBox1.Value = "4" Then 
    'Do Something 
Else 
    'Do Something 
End If 
Смежные вопросы