programing

Esc 키를 누를 때 Excel 매크로 실행 중지

mailnote 2023. 5. 31. 18:23
반응형

Esc 키를 누를 때 Excel 매크로 실행 중지

XP에서 Excel 2007을 실행하고 있습니다.

실행 중에 이스케이프를 누르는 것 외에 매크로가 실행되지 않도록 하는 방법이 있습니까?보통 제가 무한 루프를 만들었거나 다른 방법으로 무언가를 망쳤다고 생각하면 탈출에 성공하고 오류를 던지지만 매크로는 중지됩니다.

이번에는 (전에도 해봤지만 이렇게 나쁘지는 않습니다만) 빠른 디버깅을 위해 메시지 상자를 설정했습니다.6000번의 루프를 반복해야 했습니다. 그래서 6000개의 메시지 상자를 "확인"해야 했습니다. 몇 분이 걸렸습니다.실행하기 전에 저장하지 않았기 때문에(다른 실수로) 작업 관리자를 열 수 없습니다.

제가 또 이렇게 망했을 때를 대비해 매크로 실행을 중단할 수 있는 다른 방법이 있나요?

+를 사용하여 임의의 지점에서 실행을 일시 중단합니다.BREAK중단 모드로 전환되고 를 눌러 실행을 계속하거나 비주얼 디버거에서 코드를 단계별로 실행할 수 있습니다.

물론 이것은 메시지 상자가 열려 있지 않을 때만 작동하므로, VBA 코드가 어떤 이유로 메시지 상자를 계속 열면 적절한 순간에 키를 누르는 것이 약간 까다로워집니다.

코드가 실행되는 동안 대부분의 코드를 편집할 수도 있습니다.

사용하다Debug.PrintVBA 편집기에서 즉시 창으로 메시지를 출력하는 것이 훨씬 편리합니다.MsgBox.

중단점 또는Stop키워드: 관심 영역에서 실행을 자동으로 중지합니다.

사용할 수 있습니다.Debug.Assert실행을 조건부로 중지합니다.

CTRL + SCRLK(스크롤 잠금)가 작동했습니다.

키보드에서 올바른 Pause키 집합(또는 키보드에서 사용할 수 없는 경우가 대부분임)과 2, 3 또는 여러 번 눌러도 매크로가 중지되지 않습니다.

저도 막혀서 결국 Windows의 내게 필요한 기능에서 솔루션을 찾았습니다. 그 후 조사한 모든 옵션을 사용해 본 결과, 3가지 시나리오에서 3가지 옵션이 작동했습니다.

단계 #01: 키보드에 특정 키가 없으면 걱정하지 말고 +를 눌러 Windows 유틸리티에서 'OnScreen Keyboard'를 여십시오.

단계 02: 이제 다음 옵션 중 하나를 사용해 보십시오. 시스템 아키텍처(예: OS 및 Office 버전)에 따라 이러한 옵션이 확실히 작동합니다.

  • Ctrl + Pause
  • Ctrl + ScrLk
  • Esc (Esc연속적으로 두 번 누름)

매크로가 현재 작업을 완료하는 즉시 실행을 일시 중단하므로 위의 키 조합을 사용하여 중단 모드로 전환됩니다.예를 들어 웹에서 데이터를 가져오는 경우 다음 명령을 실행하기 전에 즉시 중지되지만 데이터를 실행한 후에는 를 누르거나 디버깅을 계속할 수 있습니다.

+를 눌러 매크로를 중지할 수 있지만, 브레이크 키가 없으면 자동 단축키(오픈 소스) 코드를 사용할 수 있습니다.

+ESC:: {CtrlBreak} 입력 전송 반환

+를 누르면 +를 누르는 것과 같아서 매크로가 중지됩니다.

이 페이지에 대한 모든 영광

저는 또한 디버깅을 위해 MsgBox를 사용하는 것을 좋아하는데, 이와 같은 문제를 한 번 이상 마주친 적이 있습니다.이제 항상 팝업에 Cancel 버튼을 추가하고 Cancel을 누르면 매크로를 종료합니다.코드 예제:

    If MsgBox("Debug message", vbOKCancel, "Debugging") = vbCancel Then Exit Sub

또한 "Break" 버튼으로 "FN" 또는 기능 키를 누르거나 "sysrq" 버튼(시스템 요청)을 함께 눌러야 합니다. 그러면 실행 중인 매크로가 중지됩니다.

두 번째 Excel 창을 열고 두 번째 창에서 매크로를 실행하면 첫 번째 창의 실행이 중지되는 경우가 있습니다.왜 항상 효과가 없는지는 모르겠지만, 당신은 시도해 볼 수 있습니다.

방금 ESC와 CTRL-BREAK가 작동하지 않았습니다.하지만 CTRL-ESC는 작동했습니다!?이유는 모르겠지만, 다른 사람에게 도움이 될 경우를 대비해 밖으로 버려야겠다고 생각했습니다.(나는 루프에서 i = i + 1을 잊었습니다...)

계속 누르기만 하면 됩니다.ESC키. 그러면 VBA가 중지됩니다.이 방법은 무한대가 될 때 효과가 있습니다.MsgBox s

매크로를 실행하기 전에 MsgBox로 줄을 주석 처리하는 것을 잊었습니다.즉, 확인을 10만 번 이상 클릭해야 합니다.ESC 키는 메시지 상자를 탈출했을 뿐 매크로 실행을 중지하지 않았습니다.ESC 키를 몇 초 동안 계속 누르고 있으면 코드 실행을 중지할 수 있었습니다.

제 노트북에는 Break 또는 Scr Lock이 없어서 Ctrl + Function + Right Shift('일시 중지' 활성화)를 눌러 어떻게든 작동할 수 있었습니다.

언급URL : https://stackoverflow.com/questions/6776919/stopping-excel-macro-executution-when-pressing-esc-wont-work

반응형