Declare Function GetKeyState Lib "user32.dll" (ByVal nVirtKey As Long) As Integer
Public Const VK_ESCAPE = &H1B
Public Function isKeyPressed() As Boolean
DoEvents
If (GetKeyState(VK_ESCAPE) And &H80) = &H80 Then isKeyPressed = True
End Function
Excel VBA - Start, Pause, Stop
Запускается этот цикл с пользовательской CommandBar по кнопке Start.
Хочется дать пользователю досрочно прекратить данный цикл (обсчет может идти достаточно долго) по нажатию кнопки Stop с той же панели.
Как это сделать?
1. Во время счета в цикле макрос назначенный кнопке Stop при ее нажатии не обрабатывается. Система отображает песочные часы и на нажатие кнопки Stop не реагирует.
2. во время счета Application.ScreenUpdating=False
Еще можно использовать API функцию:
Код:
И включить ее в тот цикл и все.