Гость
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Что может останавливать код VBA Excel? / 8 сообщений из 8, страница 1 из 1
30.09.2018, 11:57
    #39710483
Alibek B
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Что может останавливать код VBA Excel?
Есть лист 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
30.09.2018, 12:00
    #39710485
Alibek B
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Что может останавливать код VBA Excel?
Кстати, на другом ПК этот код успешно отработал.
Версия офиса одинаковая, версия ОС разная (на первом Windows XP, на втором Windows 7).
...
Рейтинг: 0 / 0
30.09.2018, 15:29
    #39710537
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Что может останавливать код VBA Excel?
После появления ошибки нажмите Debug, затем Ctrl+Break, затем кнопку Play на панели редактора VBE (зеленый треугольничек воспроизведения кода) - продолжится выполнение кода. После этого ошибка должна исчезнуть.
Главное жать не F5 для продолжения выполнения, а именно треугольник на панели. Иначе может не сработать.

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

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

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



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


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