excel VBA break execution when there's no break key on keyboard

依然范特西╮ 提交于 2020-06-24 20:32:40

问题


I'm just noticing that on my laptop (Dell XPS 15z) there's no BREAK key (no dedicated number keypad). I'm running the debugger step-by-step and then when all seems fine, I just let it play out. However, it's running in an infinite loop and now I'm realizing there's no way to stop it without the break key!!!!

Is this a bad joke? I had to reboot the computer; is there a more graceful way??

Thanks.


回答1:


just press the escape key twice ;-)




回答2:


Solution #1 (It works most of the time): When some particular keys (Pause, Break or ScrLk) are missing on the keyboard and pressing Esc 2, 3 or multiple times doesn't stop the macro too.

Step #01: If your keyboard does not have a specific key, please do not worry and open the 'OnScreen Keyboard' from Windows Utilities by pressing Win + U.

Step #02: Now, try any of the below option and of them will definitely work depending on your system architecture i.e. OS and Office version

  • Ctrl + Pause
  • Ctrl + ScrLk
  • Esc + Esc (Press twice consecutively)

You will be put into break mode using the above key combinations as the macro suspends execution immediately finishing the current task. For eg. if it is pulling the data from the web then it will halt immediately before executing any next command but after pulling the data, following which one can press F5 or F8 to continue the debugging.


When Solution #1 doesn't work or you need a permanent solution then try adding a new KEY to the Registry. (I am running Win 10 Creators Update on Dell 3530 Inspiron Laptop)

Disclaimer: Please only make changes to Windows Registry at your own risk and it is advisable only if you are windows administrator or have prior experience in the changing the key values in the registry.

You can also look for Solution #2 which use accessibility keyboard Win + U

Solution #2: 1) Click the START, then type REGEDIT into the search box. This will start the registry editor.

2) Explore the Registry, expanding each element HKEY_LOCAL_MACHINE -SYSTEM -Current Control Set - Control - Keyboard Layout

Click on the Scancode Map, and EDIT the key values to match that shown below. i.e. to have values of : 00,00,00,00,00,00,00,00,02,00,00,00,46,e0,44,00,00,00,00,00

Once Done you will need to reboot your laptop, but after that, you can use as the pause/Break Key.

To understand it in detail and customize it as per your needs, please refer this link: KeyBoard Scancodes




回答3:


Despite this being an old question, I have just encountered the same issue and discovered that Ctrl+Scroll lock works as a break.

"Scroll lock" can be accessed on my DELL Laptop via the blue function key "Fn" and the "F6" key which has a small blue lock symbol on it with an ⇳ symbol in it. At other computers it may look like ⤓ . So effectively I press Ctrl+Fn+F6.




回答4:


I have a Dell Precision without a Pause/Break key but there is a replacement for that: Fn + B, so:

- Fn + B == Pause (pause execution);
- Ctrl + Fn + B == Break (break execution);
- Win + Fn + B == Windows + Pause (open System properties).

You can execute the command:

dir /s C:\

and test the Pause and Break combination keys while dir lists all files in drive C.

reference




回答5:


On my Dell at least : ctrl + alt + esc BEFORE your cursor starts looping itself

I got this info from aidangrogan on this website :

http://en.community.dell.com/support-forums/laptop/f/3518/t/19355018

So I don't claim to have found it myself. All credits to him (or her)




回答6:


Hold CTRL+Fn & hit Shift - Stopped my macro from running. I don't have a 'Break' key either on the keyboard of my HP Pavilion G7.




回答7:


I have an HP laptop and this works when I want to break after a msgbox, hold fn+ctrl and click right shift key (has pause on it as well) then respond to msgbox and code will break.




回答8:


None of the above answers work for me.

I did how ever find this, it's not perfect since you need to keep ALT pressed and then a keys twice. On top of that it's depended on what language your Excel is set to.

In an English Excel you'd use ALT + R + R in German you need to use ALT + U + R




回答9:


I have a Japanese Layout keyboard. I neither have a scroll lock nor a break on my laptop-Lenovo E470. A long press on the Esc key worked as a terminator for me.




回答10:


Ctrl + Fn + B works for Excel 365 (Office 365) on my Dell Latitude 5480 (no Break key).




回答11:


I found a way round this, opened another instance of Excel and another spreadsheet, then opened the VBA editor from there and it showed as "running" so I could click the stop button




回答12:


I found this thread and saw the solution that has the most votes, but then realized my laptop has no Pause, Break or ScrLk) keys. I tried other proposed solutions, like 'OnScreen Keyboard' or alternative key combinations, but those didn't work either.

Then it hit me: if it's a phantom break point associated with particular line(s) of code, why not just get rid of the line(s)?

So that's what I did:

  1. I cut the line(s) where execution was breaking.
  2. Ran the macro again (it didn't break this time)
  3. Pasted the line(s) again.

It worked for me, when no other key combination (onscreen or physical) worked. Hope it helps someone!



来源:https://stackoverflow.com/questions/10114447/excel-vba-break-execution-when-theres-no-break-key-on-keyboard

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!