2013-11-07 4 views
2

Обычно, когда я хочу вырваться из инструкции, я просто установил флаг управления для потока управления, но у меня есть специальный случай со многими вложенными операторами If, и мне бы очень хотелось есть способ вырваться из нескольких с одним простым утверждением.VBA: Break Out of Deeply Nested If Statementments

В Java вы можете name a loop, а затем перейдите к этому месту; есть ли что-нибудь подобное для VBA, которое можно использовать из глубоко вложенного местоположения в операциях If? Я знаю, что у VBA есть Exit statement для петель (while, for и т. Д.), Поэтому мне интересно, есть ли что-то подобное для If.

В идеале я хотел бы сделать что-то это:

If ... 
    *NAMED_IF* 
    If ... 
     If ... 
      : 
      *break out of NAMED_IF* 
      : 
     End If 
    End If 
    *Now We end up at this control position* 
End If 

ответ

5

Существует не если-заявление конкретный способ вырваться из вложенных друг в друга, если-заявления, но вы можете использовать GoTo -statement вместо:

If ... 
    '*NAMED_IF* 
    If ... 
     If ... 

      '*break out of NAMED_IF*' 
      GoTo GoToHere 

     End If 
    End If 
End If 

'*Now We end up at this control position* 
GoToHere: 
+0

Это отлично - в соответствии со спецификацией, вы можете даже пойти на номер строки: http://msdn.microsoft.com/en-us/library/vstudio/69whc95c.aspx – user1205577

+0

@ user1205577 да, пока вы пронумеровали свои строки ... –

+0

@ user1205577 - Я не могу сказать, являетесь ли вы aticious :-) – YGA