2015-09-16 3 views
0

Как вы можете приостановить выполнение кода, а затем разрешить его продолжить.Приостановка кода VBA

+0

Изменить это вопрос и ответить на него самостоятельно. http://meta.stackoverflow.com/questions/250204/can-you-answer-your-own-questions-on-stack-overflow – niton

+0

Спасибо, сделайте это позже сегодня. –

ответ

0

Использование ToggleButton в UserForm (который инициирует код и Modal = True)

Вы можете успешно приостановить код. С помощью этого вы можете затем выполнить дополнительный выбор, чтобы изменить операцию или функцию кода с помощью кнопки addiotn.

Вам нужно будет использовать общедоступные/глобальные переменные.

Комментарии Добро пожаловать.

UserForm:

Public Sub ToggleButton1_AfterUpdate() 


    'Program is Paused/Selected to Pause 

    If ProgBar.ToggleButton1.Value = True Then 
     'Changing the Text of the Toggle button once the program is 
     'selected to Pause 
     'If program paused then button will display continue 
     ProgBar.ToggleButton1.Caption = "Continue" 


     'For Sending to Loop Code 
     ProgramStatus = "0" 
     Call LoopCode.PrgStat(ProgramStatus) 

    End If 



    'Program is running/Selected to run 

    If ProgBar.ToggleButton1.Value = False Then 
     'Changing the Text of the Toggle button once the program is selected to continue 
     'If program running then button will display pause 
     ProgBar.ToggleButton1.Caption = "Pause" 

     'For Sending to Loop Code 
     ProgramStatus = "1" 
     Call LoopCode.PrgStat(ProgramStatus) 

    End If 


End Sub 

В ваш модуль

Public Status As String 

Public Sub PrgStat(ByVal ProgStatus As String) 

    Status = ProgStatus 

End Sub 




Sub SomeSub() 

Do While 

    ' Some Loop Code Running 




      If Status = "1" Then 

      'Toggle Not Pressed   

      End If 

      If Status = "0" Then 

      'Toggle Button Pressed 

      Do While Status = "0" 
       'Program will stop here until the togglebutton on the 
       'userform is pressed again which changes Status = 1 

       'This is where you can make another selection on the 
       'userform 

       DoEvents 

      Loop 


      End If 

    Loop 
End Sub 
Смежные вопросы