Vba не работает ctrl break

Перерыв управления не работает в 2010 (2013) Excel VBA

Я пишу код и (как бы это ни было сложно поверить многим), иногда облажаюсь, создавая бесконечный цикл. С моим новым модным Excel, Ctrl + Break больше не работает. Также как и клавиша Esc, и т. Д. Я просмотрел всю сеть, и кажется, что у Microsoft есть ошибка, и она не хочет ее исправлять.

Кто-нибудь знает способ повторно ввести функцию Ctrl + Break в VBA, чтобы, если это произойдет в будущем, я не потерял работу /принудительное закрытие? Спасибо!

6 ответов

Alt + Esc. Удерживайте клавиши, пока они не сломаются.

Начиная с Windows 7, это будет циклически проходить по всем открытым окнам. Не обращай внимания, просто продолжай сжимать его.

В Office 2013, по крайней мере, Ctrl + Scroll Lock делает это. Мне не нужно было менять какие-либо настройки или включать что-либо.

(Откровенный плагин: мой блог ссылка на первоисточник этой информации :))

Один из способов смягчить это очень раздражающее поведение — включить

В цикле. Его не нужно выполнять каждую итерацию, если он вызывается периодически, Ctrl Break все равно будет работать.

Примечание. Обычно я удаляю это после отладки кода, чтобы избежать какого-либо влияния на производительность

Если это может кому-либо помочь, нажатие Ctrl + break, когда макрос не запущен, работает, только если вы делаете это вне разработчика.

Альтернативой будет преднамеренная ошибка в цикле. Скажем, например Ваш цикл не должен выполняться более 1000 раз:

он выдаст ошибку и «сломает» код

Для тех, кто пробовал ранее предложенные решения безрезультатно, попробуйте это. У меня это сработало (windows8, Excel 2016)

В окне кода VBA щелкните левой кнопкой мыши и удерживайте (как будто вы собираетесь перетаскивать это окно), удерживая при этом клавиши Alt + ESC. Он нарушил выполнение и спросил меня, хочу ли я продолжить или отладить . Я, конечно, выбрал отладку.

Источник

Как прервать работу зацикленного макроса, если CTRL/Break не «того»?

Привет. Макрос (видимо) зациклился и колбасит уже час вместо положеных 10 минут. Ни на что не реагирует, собственно. Хотя параллельно могу открывать другие книги ексель для работы.
Я так понимаю, что теперь тольуко принудительное закрытие книги?

вопрос: можно ли в макрос засунуть какую-то инструкцию, которая будет заставлять макрос реагировать на контрол брейк? или как keit предупредить подобные подвисания?

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Как прервать работу макроса, если он не откликается на Ctrl+Break?
здравствуйте иногда после нажатия Run когда очень срочно нужно прервать работу макроса я делаю -.

Как сделать так, чтобы работу макроса нельзя было прервать с помощью Ctrl+Break и других комбинаций?
Добрый день, известно, что работу мкроса можно остановить, например, ctrl+break/pause. Возможно и.

Читайте также:  Как настроить напольные весы tefal premiss

При Ctrl+Break возникает ошибка «Code execution has been interrupted»
Sub Sam8() K = 1 Do While Mid(Cells(5, 5), K, 1) <> » » K = K + 1 Loop Range(«A8»).Value =.

Как в Word 2010 аккорду «Ctrl ё» присвоить действие кнопки «формат по абзацу»
Скажите, плиз. как в Word 2010 аккорду «Ctrl+ё» присвоить действие кнопки «Формат по абзацу».

Источник

Vba не работает ctrl break

1) В Excel’е (MS Office 97) крутится макрос, обработка таблицы в цикле. Дело может быть долгим, поэтому резонно дать пользователю возможность прервать его выполнение. Ставится ловушка ошибок On Error, но нажатие Ctrl+Break не ловится. Ладно, пишется тестовая программа:

Sub ErrTrap()
On Error GoTo ErrHand
Err.Raise 18
Do
Loop
Exit Sub

ErrHand:
MsgBox Err.Number & vbCr & Err.Description
Resume Next
End Sub

В 3-й строке программно генерится ошибка с кодом 18 — «Произошло прерывание, вызванное пользователем», ловится нормально, управление передается обработчику. Управа возвращается в вызывающую программу, начинает крутиться мертвый цикл Do. Loop. Жмется Ctrl+Break или Esc — следует системное сообщение об ошибке «Выполнение программы прервано». Что за епть? Получается, Ctrl+Break генерит не 18 ошибку? А почему Ctrl+Break не ловится? А чем тогда вызывается 18 ошибка? И как тогда прерывать выполнение программы с клавиатуры?

2) В продолжение п. 1. Как альтернативу можно было сделать форму с кнопкой, при нажатии на которую прерывалось бы выполнение, да и индикатор выполнения не помешал бы, но в MS Office 97 все формы модальные. Можно ли все-таки как-то исхитриться и во время выполнения повесить диалоговое окно? Может быть, Win API может помочь?

3) А в MS Project 2000 ошибки вообще не ловятся, никакие — управление обработчику ошибок просто не передается. В той же самой тестовой программе из п. 1, перенесенной в модуль Project’а, все ошибки перехватываются внутренним обработчиком, но в программный не попадают. В чем причина-то.

Источник

Останов выполнения кода

Выполнение кода может остановиться по одной из следующих причин.

Происходит перехваченная ошибка во время выполнения и выбран элемент Останов при любой ошибке на вкладке Общие диалогового окна Параметры.

В коде обнаружен оператор Stop, выполняющий переключение в режим приостановки выполнения.

В коде обнаружен оператор End, выполняющий переключение в режим разработки.

Вы останавливаете выполнение вручную в данной точке.

Обнаружено контрольное выражение, которое вызывает останов при выполнении определенных условий.

Остановка выполнения вручную

Чтобы переключиться в режим приостановки выполнения, в меню Выполнить выберите команду Останов (CTRL+BREAK) или используйте ярлык на панели инструментов: .

Чтобы переключиться в режим разработки, в меню Выполнить выберите команду Сбросить или используйте ярлык на панели инструментов: .

Продолжение выполнения после остановки приложения

  • В меню Отладка выберите команду Выполнить пошагово (F8), Шаг с обходом (SHIFT+F8), Шаг с выходом (CTRL+SHIFT+F8) или Выполнить до текущей позиции (CTRL+F8).

См. также

Поддержка и обратная связь

Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь.

Читайте также:  Можно ли отремонтировать лампочку от натяжного потолка

Источник

выполнение прерывания excel VBA, когда на клавиатуре нет клавиши прерывания

Я просто заметил, что на моем ноутбуке (Dell XPS 15z) нет клавиши BREAK (нет выделенной цифровой клавиатуры). Я запускаю отладчик шаг за шагом, а затем, когда все кажется хорошо, просто позволяю ему поиграться. Однако он работает в бесконечном цикле, и теперь я понимаю, что его невозможно остановить без клавиши прерывания .

Это плохая шутка? Пришлось перезагрузить компьютер; есть ли более изящный способ ??

13 ответов

Просто дважды нажмите клавишу ESC 😉

Поскольку все вышеперечисленное не работало для моего приложения, я написал сценарий VBS, который можно запустить с терминала. Не элегантно. Вероятно, не лучший выбор, если один из остальных работает. Но эффективно.

Я нашел способ обойти это, открыл еще один экземпляр Excel и другую электронную таблицу, затем открыл редактор VBA оттуда, и он показал, что он «работает», поэтому я мог нажать кнопку остановки

У меня японская раскладка клавиатуры. У меня на ноутбуке Lenovo E470 нет ни блокировки прокрутки, ни обрыва. Длительное нажатие на клавишу Esc сработало для меня как терминатор.

Ни один из приведенных выше ответов не работает для меня.

Как бы то ни было, я нашел this, это не идеально, так как вам нужно удерживать нажатой ALT , а затем дважды нажать клавишу. Кроме того, это зависит от того, на каком языке установлен ваш Excel.

В английском Excel вы должны использовать ALT + R + R , в немецком вам нужно использовать ALT + U + R

Я нашел эту ветку и увидел решение, получившее наибольшее количество голосов, но затем понял, что на моем ноутбуке нет клавиш Pause , Break или ScrLk) . Я пробовал другие предлагаемые решения, такие как «Экранная клавиатура» или альтернативные комбинации клавиш, но они тоже не работали.

Тогда меня осенило: если это фантомная точка останова, связанная с определенной строкой (строками) кода, почему бы просто не избавиться от этой строки (строк)?

Вот что я сделал:

  1. Я перерезал линию (и), где казнь прерывалась.
  2. Снова запустить макрос (на этот раз он не сломался)
  3. Вставил строку (и) снова.

У меня это сработало, когда никакая другая комбинация клавиш (экранная или физическая) не работала. Надеюсь, это кому-то поможет!

Ctrl + Fn + B работает для Excel 365 (Office 365) на моем Dell Latitude 5480 (нет клавиши Break ).

Удерживайте CTRL + Fn и нажмите Shift — остановил запуск моего макроса. На клавиатуре моего HP Pavilion G7 у меня тоже нет клавиши Break.

По крайней мере, на моем Dell: ctrl + alt + esc ДО того, как ваш курсор начнет зацикливаться

Я получил эту информацию от aidangrogan на этом сайте:

Так что я не утверждаю, что нашел это сам. Все кредиты ему (или ей)

У меня есть ноутбук HP, и это работает, когда я хочу прервать работу после сообщения msgbox, удерживая fn + ctrl и нажимая правую клавишу Shift (на нем тоже есть пауза), затем отвечаю на msgbox, и код ломается.

Читайте также:  Почему не работает маятник ньютона

Несмотря на то, что это старый вопрос, я только что столкнулся с той же проблемой и обнаружил, что Ctrl+Scroll lock работает как перерыв.

Доступ к «Блокировке прокрутки» на моем ноутбуке DELL можно получить с помощью синей функциональной клавиши «Fn» и клавиши «F6», на которой изображен маленький синий символ замка с символом ⇳. На других компьютерах он может выглядеть как ⤓. Так что эффективно нажимаю Ctrl + Fn + F6.

У меня Dell Precision без клавиши Pause / Break , но для нее есть замена: Fn + B , поэтому:

— Fn + B == Pause (приостановить выполнение);
— Ctrl + Fn + B == Break (прервать выполнение);
— Win + Fn + B == Windows + Pause (открыть свойства системы ).

Вы можете выполнить команду:

И протестируйте комбинацию клавиш Pause и Break, пока dir выводит список всех файлов на диске C.

Решение №1 (работает в большинстве случаев): Когда на клавиатуре отсутствуют определенные клавиши ( Pause , Break или ScrLk) и нажатие Esc 2, 3 или несколько раз не останавливает макрос.

Шаг № 01 . Если на вашей клавиатуре нет определенной клавиши, не беспокойтесь и откройте «Экранную клавиатуру» из утилит Windows, нажав Win + U .

Шаг №02 . Теперь попробуйте любой из приведенных ниже вариантов, и они определенно будут работать в зависимости от архитектуры вашей системы, то есть ОС и версии Office.

  • Ctrl + Пауза
  • Ctrl + ScrLk
  • Esc + Esc (нажмите дважды подряд)

Вы будете переведены в режим прерывания с помощью вышеуказанных комбинаций клавиш, поскольку макрос приостанавливает выполнение сразу же, завершая текущую задачу. Например, если он извлекает данные из Интернета, он немедленно остановится перед выполнением любой следующей команды, но после извлечения данных, после чего можно нажать F5 или F8 , чтобы продолжить отладка.

Если Решение №1 не работает или вам нужно постоянное решение, попробуйте добавить новый КЛЮЧ в реестр. (Я использую обновление Win 10 Creators Update на ноутбуке Dell 3530 Inspiron)

Отказ от ответственности : вносите изменения в реестр Windows только на свой страх и риск, и это рекомендуется только в том случае, если вы являетесь администратором Windows или имеете опыт изменения значений ключей в реестре. .

Вы также можете найти Решение №2, в котором используется клавиатура специальных возможностей Win + U

Решение №2: 1) Нажмите ПУСК, затем введите РЕГРЕДИТ в поле поиска. Это запустит редактор реестра.

2) Изучите реестр, раскрывая каждый элемент HKEY_LOCAL_MACHINE -SYSTEM -Current Control Set — Control — Keyboard Layout

Щелкните карту скан-кода и ИЗМЕНИТЕ ключевые значения, чтобы они соответствовали показанным ниже. т.е. иметь значения: 00,00,00,00,00,00,00,00,02,00,00,00,46, e0,44,00,00,00,00,00

После завершения вам нужно будет перезагрузить ноутбук, но после этого вы можете использовать его в качестве клавиши паузы / прерывания.

Чтобы понять его подробно и настроить в соответствии с вашими потребностями, перейдите по этой ссылке: Сканкоды клавиатуры

Источник

Оцените статью