Страницы: 1
RSS
Отладчик(F8) выключается после Application.GetOpenFilename
 
Доброго дня. Может быть кто то уже сталкивался или сразу понимает в чем проблема.
Пишу/настраиваю макрос построчно, через отладчик. Добавляю и корректирую строки, после чего с первой строки через F8 и далее.
Но как только проходит строку: (После выбора файлов)
Код
avFiles = Application.GetOpenFilename("Excel files(*.xls*),*.xls*", , "Выбор файлов", , True)
Отладчик выключается, а макрос продолжает работать со своей, максимально возможной скоростью.
Разумеется он останавливается на ближайшей ошибке где то дальше, но дальше не могу отследить, как в процессе были рассчитаны переменные, какие файлы и как он обрабатывал. Почему же выключается отладчик и запускается макрос?

Думаю проблема в индивидуальных настройках, но где конкретно не знаю. От того и пример не прикладываю.  
Не перестаю удивляться возможностям excel и VBA.
 
Цитата
Shama написал:
Думаю проблема в индивидуальных настройках
не факт. Может быть и в каких-то кодах. Встречал уже такое, правда не помню точную причину, но точно где-то в самом коде была проблема. Кажется какие-то API использовались или иные методы управления окнами и диалогами. Тогда что-то дает сбой и после любого диалогового окна пошаговая отладка сбрасывалась на F5.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
А у меня всегда так работало.
Поэтому ставлю точку останова на следующей строке, и не парюсь.
 
Пока писал пример, стало еще интереснее)
Пример во вложении - если выбрать 10 и более файлов - отладчик продолжит работать дальше. Но если выбираю 9 или меньше файлов - он выключается и мгновенно появляется финишное сообщение.

Доп.Голова кругом - другой рабочий макрос работает нормально при любом кол-ве файлов, а над которым работаю - отладчик выключается любом кол-ве файлов. :(  
Изменено: Shama - 25.02.2021 12:19:53
Не перестаю удивляться возможностям excel и VBA.
 
Цитата
RAN написал:
ставлю точку останова на следующей строке
Которая красным выделяет всю строку в коде?
Спасибо, работает. Раньше даже не представлял, в каких случаях может пригодиться эта функция.)
Не перестаю удивляться возможностям excel и VBA.
 
Цитата
Shama написал:
Раньше даже не представлял, в каких случаях может пригодиться эта функция
Отлов ошибок и отладка кода VBA
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Код
Sub test()
  Dim avFiles, x As Long
  avFiles = Application.GetOpenFilename("Excel files(*.xls*),*.xls*", , "Выбор файлов", , True)
  If TypeName(avFiles) = "Variant()" Then x = UBound(avFiles) Else x = 0
  MsgBox "Выбрано файлов: " & x & " шт."
End Sub
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
Страницы: 1
Наверх