2016-12-08 8 views
0

Я новичок в VBA, занимающийся проблемой реальной работы, у меня есть проблема выхода, пока после завершения внутренний (вложенный) do-while.Как выйти/пропустить выход из игры после завершения. Если-то во вложенном (внутреннем) выполнении, пока

* Код работает нормально, нет проблем, но я хочу знать, как сделать его более эффективным с помощью exit/skip outter do-while, после того как будет выполнено внутреннее if-then и ##.

здесь является то, что код выглядит (FYI я удаляю некоторые коды для удобства чтения):

For Each w In Worksheets 
    If() Then 

     Do While (i) ' outter do-while 

      Do While() 'inner(nested/1st do-while) 
        If() Then 'match something here 

         ## do something here 

         Exit Do  'break the inner do-while 
        End If 

      Loop 

      i = i + 20 'question here!!how should I break outter do-while? 

     Loop      
    End If 
    Next w 

Итак, моя цель состоит в том, что когда-если-то подобран и ## содержание будет сделано, как я мог бы сразу перейти к «следующей w», ака перейти на следующий рабочий лист?

Я пробовал «goto + line», но он не работает, есть ли другой способ?

+0

добавить дополнительный '' variable' из типа Boolean'. Установите 'true' внутри' inner loop if statement'. Затем во внешнем цикле проверьте, является ли это 'variable = true', и если так вызывают' exit do' для внешнего цикла. –

+0

спасибо Кази! Это очень полезно! – leveygao

ответ

1

вы можете попробовать что-то вроде этого:

Dim exitLoop As Boolean '<--| default initial value is 'False' 

For Each w In Worksheets 
    If() Then 

     Do While (i) And Not exitLoop ' outer do-while 

      Do While() and Not exitLoop 'inner(nested/1st do-while) 
        If() Then 'match something here 

         ## do something here 

         exitLoop = True 
         Exit Do  'break the inner do-while 
        End If 

      Loop 

      i = i + 20 'question here!!how should I break outter do-while? 

     Loop 
     exitLoop = False '<--| set back default value 
    End If 
Next w 

 Смежные вопросы

  • Нет связанных вопросов^_^