powered by simpleCommunicator - 2.0.38     © 2025 Programmizd 02
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Что может останавливать код VBA Excel?
8 сообщений из 8, страница 1 из 1
Что может останавливать код VBA Excel?
    #39710483
Alibek B
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть лист Excel с данными.
Мне нужно сгруппировать на этом листе данные.
Использую такой код:
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
Public Sub ClientStructure()
  Dim R As Long, R0 As Long, I As Long
  Dim sh As Worksheet
  Const RowBegin As Long = 2
  Const RowEnd As Long = 44856
  Set sh = shClientsData
  For R = RowBegin To RowEnd
    If sh.Cells(R, 1).Value <> I Then
      If R0 > 0 Then
        sh.Rows((R0 + 1) & ":" & (R - 1)).Group
      End If
      R0 = R
      I = sh.Cells(R, 1).Value
    End If
    If R0 > 0 And R > R0 Then
      sh.Cells(R, 3).Value = sh.Cells(R0, 3).Value
    End If ***
  Next R
End Sub



Код сам по себе рабочий, но когда я его запускаю, он останавливается на помеченной строке с таким сообщением:
Code execution has been interrupted.
(как будто я нажал Ctrl+Break)

Останавливается не на каждом проходе, но логики я не уловил.

Что это может быть?
...
Рейтинг: 0 / 0
Что может останавливать код VBA Excel?
    #39710485
Alibek B
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кстати, на другом ПК этот код успешно отработал.
Версия офиса одинаковая, версия ОС разная (на первом Windows XP, на втором Windows 7).
...
Рейтинг: 0 / 0
Что может останавливать код VBA Excel?
    #39710537
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
После появления ошибки нажмите Debug, затем Ctrl+Break, затем кнопку Play на панели редактора VBE (зеленый треугольничек воспроизведения кода) - продолжится выполнение кода. После этого ошибка должна исчезнуть.
Главное жать не F5 для продолжения выполнения, а именно треугольник на панели. Иначе может не сработать.

http://www.excel-vba.ru/chto-umeet-excel/code-execution-has-been-interrupted-chto-za-bag/
...
Рейтинг: 0 / 0
Что может останавливать код VBA Excel?
    #39710547
booby
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вероятно в этом месте когда-то стояла точка останова для отладчика.
И на этом конкретном компьютере, хотя её глазами и не видно, она запомнилась.
Смысл того совета, который приведен по ссылке, данной Shocker.Pro
заключается в снятии этой точки тогда, когда код на ней уже встал.

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

Я, в таких случаях, предпочитаю целиком декомпилировать модуль.
методом помещения в него лишнего пробела, комментария или пустой строки, прямо в проблемном цикле.
После чего перекомпилировать проект.
Но делать это следует не во время работы макроса, а по его завершении или до начала работы.
...
Рейтинг: 0 / 0
Что может останавливать код VBA Excel?
    #39710583
Alibek B
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Странный баг.
А почему глючная точка остановки срабатывает не на каждом проходе?
Иногда срабатывает через раз, иногда выполняется несколько итераций цикла без остановки.
...
Рейтинг: 0 / 0
Что может останавливать код VBA Excel?
    #39710762
Alibek B
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
boobyВероятно в этом месте когда-то стояла точка останова для отладчика.
И на этом конкретном компьютере, хотя её глазами и не видно, она запомнилась.
Да, так и было.
Очень странный баг. Потому что изначально это был вообще документ без макросов (xslx, а не xslm).
Я добавил модуль, вставил код, выполнил его (выставив точку останова), затем подкорректировал код. Затем удалил модуль, сохранил документ (как xslx) и закрыл Excel.
А при повторном открытии документа, добавлении модуля и кода эта проблема и возникла.
Перекомпиляция кода не помогла. Помогло добавление новой функции (под другим именем), но через пару запусков на этой новой функции код также стал останавливаться.
Помогло нажатие зеленой кнопки "Продолжить".
...
Рейтинг: 0 / 0
Что может останавливать код VBA Excel?
    #39710769
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У меня такое случается после Ctrl+Break при отладке
...
Рейтинг: 0 / 0
Что может останавливать код VBA Excel?
    #39710944
booby
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alibek B....
Помогло нажатие зеленой кнопки "Продолжить".
Интересно. Спасибо.
я очень редко касаюсь vba, считанное по пальцам одной руки число раз в году.
Сам предпочитаю для целей отладки в коде расставлять
Код: vbnet
1.
Debug.Assert False



Не помню, чтобы это приводило к таким чудесам.
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Что может останавливать код VBA Excel?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]