Форум программистов, компьютерный форум, киберфорум
VBA
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.81/190: Рейтинг темы: голосов - 190, средняя оценка - 4.81
Эксперт WindowsАвтор FAQ
 Аватар для Dragokas
18030 / 7733 / 892
Регистрация: 25.12.2011
Сообщений: 11,502
Записей в блоге: 16

Как побороть Code execution has been interrupted

10.02.2012, 22:39. Показов 40617. Ответов 18
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Почитал другие форумы и не нашел ответа.
Вот выдержка: "
При выполнении вполне работоспособного кода выскакивает сообщение "Code execution has been interrupted". Строчка программы, на которой останавливается выполнение может быть любой. При этом, невзлюбив однажды эту "любую" строчку, сообщение будет появляться всегда на ней (и горе, если несчастная строчка находится в цикле). После нажатия "Continue", программа выполняется далее до конца или до следующего сообщения.
Больше всего похоже на то, что кто-то стоит у вас за спиной и, в тот момент, когда вы моргнули, нажимает Ctrl+Break
Почитав сообщения коллег по несчастью и обобщив можно сказать:
1. Появление ошибки не зависит напрямую от содержания кода.
2. Чаще всего на других компьютерах при выполнении той же программы сообщение не появляется.
3. Чаще всего сообщение не появляется какое-то время после перезагрузки.
4. Сообщение не появляется, если отключить возможность ручной остановки программы:
Application.EnableCancelKey = xlDisabled "

Моя история:
Запустил прогу на Excel 2003 - выполнилась без ошибок. Затем запустил и прервал Ctrl+Break.
При всех последующих запусках стал возникать Сабж.
Перезагрузка, переустановка Office не помогла.
Сейчас установлен паралельно Office 2003 + 2007.
На 2007 наблюдается тоже самое.
Возникает только при выполнении определенного макроса (листинг около 40 страниц).
Код полностью рабочий и ошибок раньше не возникало. Есть несколько версий.
И все они стали выдавать подобное чудо.

Прогу дать не могу, но если кому интересно решить проблему, могу дать удаленный доступ.

P.S. Комп защищен KIS 2011.

Добавлено через 1 час 21 минуту
Все это надоело... решил проблему.

Вычистил все ручками под 0.
http://support.microsoft.com/kb/290301/ru
Способы № 2 и 4:
Fix it от Microsoft, удаление всех файлов, связанных с офисом и чистка реестра.

А потом еще выборочная чистка Cleaner-ом, в т.ч. реестра.

Помогло. Теперь все в порядке.
5
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
10.02.2012, 22:39
Ответы с готовыми решениями:

Ошибка в программе: Code execution has been interrupted
чего-то пользователь сделал при работе с программой - выдается ошибка Code execution has been interrupted при выборе continue -...

При 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 = Mid(Cells(5, 5), 1, K) 'вписана...

Error: code interrupted
Подскажите пожалуйста, в чем может быть проблема, когда выскакивает такое сообщение. Дело в том, что я запускаю макрос на другой версии...

18
 Аватар для ironegg
1905 / 782 / 31
Регистрация: 11.02.2010
Сообщений: 1,567
12.02.2012, 15:15
Цитата Сообщение от Diskretor Посмотреть сообщение
Сейчас установлен паралельно Office 2003 + 2007
есть подозрение, что дело в этом. я тоже сталкивался с необъяснимыми глюками при установке двух версий.
рекомендую, как основной - установленный 2010, и на всякий случай портейбл 2003. работает хорошо
2
Эксперт WindowsАвтор FAQ
 Аватар для Dragokas
18030 / 7733 / 892
Регистрация: 25.12.2011
Сообщений: 11,502
Записей в блоге: 16
12.02.2012, 17:05  [ТС]
Нет, дело было не в этом. Поначалу стоял 2003 и я его настройки вообще не трогал.
Сообщение появилось прямо во время одной и той же сессии работы с Excel.
Раз - работает нормально, потом прервал работу в "плохой" момент. И дальше постоянно стало выдавать такое. Все дальнейшие действия были ради эксперимента.
1
Эксперт WindowsАвтор FAQ
 Аватар для Dragokas
18030 / 7733 / 892
Регистрация: 25.12.2011
Сообщений: 11,502
Записей в блоге: 16
16.02.2012, 14:13  [ТС]
Сегодня опять прервал операцию на MsgBox-е. При повторном запуске макроса возникает Сабж.
Что делать ума не приложу. Проводить повторную чистку нецелесообразно и видимо неэффективно.

Если кому интересно помочь дам все нужные права.
А пока буду наверно пользоваться Application.EnableCancelKey = xlDisabled
0
 Аватар для KoGG
5636 / 1618 / 418
Регистрация: 23.12.2010
Сообщений: 2,427
Записей в блоге: 1
17.02.2012, 13:25
Лучший ответ Сообщение было отмечено как решение

Решение

Попробуй эспортировать модуль (именно тот, с рабочей ошибкой) в отдельный файл, а потом открыть его из WordPad.
Тогда становятся видны невидимые атрибуты модуля и процедур, и может быть непечатаемые символы (их лучше смотреть из Word в режиме "пи").
Это помогает устранить и такую невидимую ошибку как строка "_______" после END SUB.
Выполнение программ в таких случаях останавливается на имени предшествующей процедуры.
3
 Аватар для zavr0id
64 / 6 / 1
Регистрация: 19.04.2011
Сообщений: 65
Записей в блоге: 1
06.04.2012, 12:01
у меня тоже постоянно такое происходит, причем именно после того как нажмешь cntrl+break. Если не нажимать, все ОК, только нажмешь начинает вылетать. После перезагрузке компа все снова нормально. Началось это как раз после установки 2010, при том что 2003 не удаляли. Может быть, действительно проблема в установке двух офисов. Но я решаю проблему след.образом (помимо перезагрузки) просто во время выполнения макроса нужно сделать эксель не активным, т.е. когда возникает остановка, я нажимаю "continue" и быстро активирую, например, outlook или интернет-браузер или еще что-нибудь. правда иногда это сделать не получается, потому что сообщение вылетает быстрее, чем я успеваю дотянуться до панели задач =)
0
Эксперт WindowsАвтор FAQ
 Аватар для Dragokas
18030 / 7733 / 892
Регистрация: 25.12.2011
Сообщений: 11,502
Записей в блоге: 16
06.04.2012, 15:17  [ТС]
У меня странным образом прекратилось после очередной перезагрузки и больше не появлялось.
Офис 2007-2010 был не при чем.
1
06.04.2012, 15:29

Не по теме:

У меня бывает не менее странная ошибка. Есть у меня объект ADODB.Recordset для получения данных из БД. Есть для него библиотека Microsoft ActiveX 2.8 Object Library, которая, естественно, подключена. Но Периодически на некоторых компьютерах, на которых запускается макрос, происходит вылет на строчке oRS.Open с ошибкой "Can't find project or library". При этом нет варианта "Continue". Берем и просто руками переписываем имя переменной oRS в строчке, жмем F5 - все работает. Такие вот чудеса.

0
 Аватар для mc-black
2786 / 718 / 106
Регистрация: 04.02.2011
Сообщений: 1,443
06.04.2012, 17:43
Если у кого-то глюк возобновился можно попробовать следующее (сам не пробовал, это мое предположение):

Поставить Breakpoint на строку с остановом, а также на предшествующую и последующую строчку. После прервать выполнение программы. Начать выполнять макрос пошагово (F8), перейти к нашим Breakpoint'ам, снять их и запустить на полную (F5). Есть предположение, что при прерывании выполнения ставится и не всегда корректно снимается BP на точку останова в момент нажатия Ctrl+Break. Возможно этот способ позволит сбросить BP с определенной строки программы.

P.S. У меня такого глюка пока ни разу не было.

Добавлено через 4 минуты
Ещё одно предположение, которое я бы попробовал. Сохранить код через Copy-Paste в текстовый файл, удалить модуль, сохранить/закрыть файл, после чего восстановить модуль, вставив код как текст.
1
 Аватар для zavr0id
64 / 6 / 1
Регистрация: 19.04.2011
Сообщений: 65
Записей в блоге: 1
06.04.2012, 17:52
спасибо! буду иметь ввиду, но мне казалось, что появление этого глюка не зависит от модуля или даже файла, т.е. в любом файле нажмешь cntrl+break, начинается глюк...
но может быть я просто не обращала на это внимание...
в любом случае большое спасибо!!!
0
Эксперт WindowsАвтор FAQ
 Аватар для Dragokas
18030 / 7733 / 892
Регистрация: 25.12.2011
Сообщений: 11,502
Записей в блоге: 16
10.09.2012, 16:47  [ТС]
Сегодня меня опять начало доставать это сообщение
и на одном зарубежном сайте я все-таки нашел решение (без перезагрузки компьютера и Excel-я),
которое мне помогло.

Итак, если Вы получили сообщение "Code Execution has been interrupted"
нажмите "Debug", затем Ctrl+Break, затем кнопку "Play" на панеле редактора VBE - продолжение выполнения кода.
Больше ошибка не появлялась ни в текущей сессии, ни после перезагрузки приложения.

Если ошибка осталась, вот другие рекомендации, которые помогли некоторым пользователям.

На английском:

- Some manual actions:
“Just hit f5 or press ‘continue’ till the end of the run.

“When the code is interrupted... Click to debug the code and then hit ctrl + break.

- Application.EnableCancelKey actions.
“At the start of your code: Application.EnableCancelKey = xlDisabled (For Excel) or Application.EnableCancelKey = wdCancelDisabled (For Word) .”

“Sub X ; Application.EnableCancelKey = XlEnableCancelKey.xlDisabled; Code; Application.EnableCancelKey = XlEnableCancelKey.xlInterrupt.); End Sub.”

But: “When the macro finishes, the setting will be reset to it's default (even if you don't specify) so there is no need to change the setting back.”


- Stop your worksheet from updating your links, while running macros.
For example when an add-in updated a price on the sheet it would give the above error. He deleted the link from edit links.)

- Service packs.

Remove them i.e. work on windows, before certain service pack is installed.

Save Excel files in between PC’s with differing service packs


- Tools | Options | Security Tab | Macro Security button = medium


- Simply copy & paste code.
“deleting all code, saving, and then reinserting code seems to help some people”

“cutting code out of modules, compiling and then pasting it back in etc.”

“In order to actually trigger a rebuild, it is normally necessary to modify a line, and then move the cursor to the next line to flag the source code as modified (e.g. make a change, move cursor down, move cursor up and undo the change manually).”

- Reboot PC

- Repair and cleanup actions: ((As a layman I myself am scared of this though))

Worked apparently: “I copied the workbook in windows explorer and I tried the "Repair Office" utility.”

Didn’t help much it seems: Run Office’s “detect and repair”. Forgive my ignorance: Are they talking here about [Control panel \ configuration manager \ components \ repair]?

“Google around on VBA Code Cleaners”

Worked it looks: “This problem got solved by choosing REPAIR in Control Panel. I guess this explicitly re-registers some of Office's native COM components and does stuff that REINSTALL doesn't. I expect the latter just goes through a checklist and sometimes accepts what's there if it's already installed, maybe. I then had a separate issue with registering my own .NET dll for COM interop on the user's machine (despite this also working on other machines) though I think this was my error rather than Microsoft. Thanks again, I really appreciate it.”

Attempt, didn’t work I think: “The usual things --- Run Rob Bovey's VBA Code Cleaner on your VBA Code - remove all addins on the users PC, particularly COM and .NET addins - Delete all the users .EXD files (MSoft Update incompatibilities) - Run Excel Detect & Repair on the users system - check the size of the user's .xlb file (should be 20-30K) - Reboot then delete all the users Temp files.”

- Re-install Excel

- MS Access : you open the .mdb file via a shortcut with the /decompile option (an undocumented option).

- Of course a good habit anyway is to always put ‘option explicit’ at the top of all your VBA subs. (It happens automatically if you choose [tools \ options \ require variable checking].) But this did not help us with the problem.


Позже постараюсь перевести.
8
0 / 0 / 0
Регистрация: 26.06.2013
Сообщений: 5
31.10.2013, 12:56
СПАСИБО!!!! Столкнулась, думала, всё... Последний метод прекрасный! Сообщение перестало появляться.
0
1 / 1 / 0
Регистрация: 05.11.2013
Сообщений: 2
08.01.2014, 18:44
Пытался решить данную проблему методом
если Вы получили сообщение "Code Execution has been interrupted" нажмите "Debug", затем Ctrl+Break, затем кнопку "Play" на панеле редактора VBE - продолжение выполнения кода.
но ничего не получается.
Хочу уточнить. При нажатии кнопки Debug открывается код и подсвечивается строка, якобы содержащая ошибку. Далее необходимо нажать Ctrl+Break, что соответствует паузе в выполнении кода. В этот момент кнопка паузы на панели редактора неактивна. Соответственно и при нажатии Ctrl+Break ничего не происходит... Далее кнопка Play. Заканчивается выполнение кода. Так ли делали Вы?

Добавлено через 21 минуту
Цитата Сообщение от mc-black Посмотреть сообщение
Если у кого-то глюк возобновился можно попробовать следующее (сам не пробовал, это мое предположение):

Поставить Breakpoint на строку с остановом, а также на предшествующую и последующую строчку. После прервать выполнение программы. Начать выполнять макрос пошагово (F8), перейти к нашим Breakpoint'ам, снять их и запустить на полную (F5). Есть предположение, что при прерывании выполнения ставится и не всегда корректно снимается BP на точку останова в момент нажатия Ctrl+Break. Возможно этот способ позволит сбросить BP с определенной строки программы.
Попробовал - не помогло... =(

Добавлено через 4 минуты
Цитата Сообщение от mc-black Посмотреть сообщение
Ещё одно предположение, которое я бы попробовал. Сохранить код через Copy-Paste в текстовый файл, удалить модуль, сохранить/закрыть файл, после чего восстановить модуль, вставив код как текст.
То же самое. Причём на той же строке...
1
Эксперт WindowsАвтор FAQ
 Аватар для Dragokas
18030 / 7733 / 892
Регистрация: 25.12.2011
Сообщений: 11,502
Записей в блоге: 16
08.01.2014, 23:18  [ТС]
Цитата Сообщение от Flashmax Посмотреть сообщение
Хочу уточнить. При нажатии кнопки Debug открывается код и подсвечивается строка, якобы содержащая ошибку. Далее необходимо нажать Ctrl+Break, что соответствует паузе в выполнении кода. В этот момент кнопка паузы на панели редактора неактивна. Соответственно и при нажатии Ctrl+Break ничего не происходит... Далее кнопка Play
Да, именно так. Несмотря на абсурдность выделенного в Вашей цитате действия, ошибка исправляется.
Но, периодически все равно на одной из машин появляется эта же ошибка.
Лечится именно этим способом.
Если не помогло, возможно у Вас другой случай,
я приводил цитату с англоязычного обсуждения.
Возможно, что-то из него Вам поможет.
1
1 / 1 / 0
Регистрация: 05.11.2013
Сообщений: 2
09.01.2014, 11:39
Всё равно спасибо!
И кстати, ошибка действительно срабатывает только на одном из компьютеров. Везде установлен один и тот же офис, с одного дистрибутива и настройки - идентичны.
Видимо действительно, дело в компе...
0
1069 / 107 / 4
Регистрация: 19.12.2012
Сообщений: 458
09.01.2014, 13:38
Много советов. В каждом из них есть доля правды.
(часто)Еще в эпоху 2003 офиса и старых и очень медленных компов, при большой параллельной вычислительной нагрузке, можно было четко отследить появление этой ошибки при возникновении какой-либо (не всегда любой) деактивации экселя в процессе выполнения кода. (при этом, есть некоторая зависимость от того, что в параллель с этим приложением работают другие приложения экселя)
(ОЧЕНЬ часто) Еще чаще такой баг сваливался при ручном переключении в какое-либо другое приложение Alt-Tab'ом или мышью ...
но НИКОГДА такого не возникало, если переключиться мышью сначала в панель задач(пуска) (нажатием в любую точку панели)
(редко) Так же, такая же проблема возникала, если поставить точку останова, сохраниться, свалиться с эксепшеном и открыв код заново - дойти выполнением до этой точки (без перехода в код).
(а если вы еще сделали что-то, что мешает коду войти в дебаг, то бреака и не получите - только End и Continue)
(редко) ... да, точка запоминается ... причем, она фиксится где-то в глубине файла, и не зависит от самого состояния кода ... причем, что еще более странно - привязывается к самой строке(а не номеру строки) кода ...

Из всего этого, приоритетно следует вывод, что такие типовые прерывания возникают чаще всего в те моменты, когда приложение экселя теряет фокус активности ... и проблема эта СОВЕРШЕННО не зависит от версии офиса. хотя ... бывают и другие причины, не связанные с активностью.

Помогает разное ... (не ищите истину - ее нет! грааля нет! и везде и всегда лекарство разное ...)
иногда помогает:
- перенос всего кода в другую книгу
- установка в этой точке и вокруг - других точек останова (иногда совершенно бессмысленно), хождение по ним, съем, сохранение, полный перезапуск
- перезагрузка компа
- запуск другого файла (кода) на этом же компе и только потом - вновь переход к работе с этим файлом
- при ручном переключении в другое приложение: сначала переключение ТОЛЬКО в панель задач и только оттуда - уже переключение в нужное вам приложение
- переписать код, на котором происходит свал
- снизьте общую вычислительную нагрузку на процессор (снятием других программ и приложений экселя)
- (редко)полный снос профиля виндового пользователя

коллеги, ищите свои способы - их миллионы ... в вашем случае, вашу проблему, возможно решит только ваш способ - (остальные способы, которые тоже помогали, но крайне редко)откомпилируйте все заново; внесите изменения на разных листах в каких-то ячейках файла; переименуйте модуль и вставьте пустые строки в коде ДО строки с вылетом); сортите эту функцию, сохранитесь, зайдите с выключенными макросами, вставьте функцию в другое место программы и по максимуму переделайте ее; ... в конце концов, разработайте модуль который будете запускать в начале работы вашего кода и закрывать в конце, который будет нажимать Continue ...
... и проанализировав ... заметил, что от версии винды возникновение этой траблы тоже зависит - на XP это было часто, на 7 - редко!

Добавлено через 8 минут
посетила дольно интересная мысль ... кто-то может промониторить хук клавы(и других событий) на это приложение в момент возникновения этого вылета? у кого это сейчас актуально?

Добавлено через 4 минуты
Коллеги, тема старая ... честно говоря, давно думал это кинуть в советы ... но не стал т.к. хочу отметить еще и еще раз - единого лекарства этой проблемы нет. Возможно - вы найдете какой-то другой способ. Просто старайтесь думать не стандартно ...
и делитесь вашим средством с нами )
2
1069 / 107 / 4
Регистрация: 19.12.2012
Сообщений: 458
10.01.2014, 17:10
В контексте темы. Верно кто-то сталкивался, что при переключении терминалку, при активном работающем экселе, Excel иногда открывает IDE'шное окошко без каких-либо сообщений и при этом, продолжает работать ...
Кто как боролся с этим?
0
3 / 3 / 0
Регистрация: 12.12.2015
Сообщений: 174
16.04.2016, 05:54
Здорово! Получил такой "сабж" - "Code Execution has been interrupted", при выполнении кода в четыре строки. Этот способ помог существенно сократить время на поиски других решений. Всё ЗАРАБОТАЛО , Спасибо!
0
0 / 0 / 0
Регистрация: 20.07.2018
Сообщений: 1
20.07.2018, 07:10
Огроменное спасибо за совет
если при этой ошибке нажать Debug, затем CTRL + BREAK и продолжить выполнение кода, то ошибка правда больше не показвается.
Excel 365
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
20.07.2018, 07:10
Помогаю со студенческими работами здесь

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

Как побороть дорвеи
Добрый вечер уважаемые форумчане! Сталкнулся с такой не приятной проблемой как довери, вот уже около месяца от яндекса поступают письма:,...

C/C++ Interrupted system call
Privet vsem!!!!! EEst server napisan na C nujno dabavit programu log, Problema v tom cto Log kajdi chas doljen kapirovat (nu ili...

Как побороть русские буквы?
Есть статистика которую я хочу спарсить по ссылке http://www.liveinternet.ru/rating///today.tsv?page=1. Проблема в том, что русские буквы...

Как побороть зависания Excel' я?
Помогите советом, если это возможно:). Вообщем из 1С формируется отчет в Excel'е. Формируется он следующим образом - создается объект...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
19
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru