Модераторы: mihanik
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Отключить отладку кода при открытии\закрытии книги, Настройки отладчика Excel VBA 
V
    Опции темы
НеуФазендник
Дата 5.6.2017, 21:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 108
Регистрация: 9.5.2006

Репутация: нет
Всего: 2



Добрый день. Прошу помощи с настройками отладчика VBA!
Есть рабочий файл с сотней подпрограмм. Не все из них вызываются на исполнение. Часть находится в доработке. Часть не отлажено. 
Недавно переустановил Офис на более свежий и теперь не могу нормально ни открыть ни закрывать ни сохранять этот файл. Интерпретатор без конца матюкается, тыча на ошибки в том коде, про который я давно уже забыл, отложив его доработку. Удалить его не считаю разумным. Он будет нужен на перспективу. Но пока им заниматься некогда. Самая серьезная беда, что workbooks().open обработчик, который должен подключить базу данных, теперь не работает, потому что до его исполнения не доходит, т.к. отладчик начинает ругаться на совершенно другой код, про который ни кто не српашивал и не собирается его вызывать на исполнение. 
Прошлый интерпретатор\компилятор на них не ругался. Уж не помню, как я этого добился, но не ругался.
В Options уже все галки туда\сюда подергал, но что то ничего не могу добиться. Как только закрываю файл, снова вылезает отладчик VBA со своими замечаниями. 
Подскажите, пожалуйста, кто знает, как это отключить? 
P\S Тотальное отключение всех сообщений об ошибках мне не требуется. Т.к. ошибки исполняемого рабочего кода, в том числе расположенных в worbooks().open и beforeclose  контролировать желательно.


Это сообщение отредактировал(а) НеуФазендник - 5.6.2017, 22:09
PM MAIL   Вверх
Akina
Дата 5.6.2017, 22:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20570
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 25
Всего: 453



Займись и один раз наведи порядок в своей помойке. Ненужное - удали, снеси во внешние модули или закомментируй. Нужное, но кривое - подчисти до работоспособности. В самом крайнем случае On Error Resume Next.


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
НеуФазендник
Дата 5.6.2017, 22:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 108
Регистрация: 9.5.2006

Репутация: нет
Всего: 2



Akina,  Спасибо за уважение ко мне и за позитив.  Я предлагаю не заниматься суждением о том, что мне нужно, а что нет. Тем более, что Вы не можете располагать такими знаниями. Даже я, разработчик - таких знаний не имею, потому как много лет идет практически ежедневная доработка и неизменный пересмотр отдельных алгоритмов. Иногда с колебаниями и возвратам к прежним их версиям, потому как они порою оказываются более эффективными при развитии и усложнении отдельных функций. Несколько мегабайт кода с несколькими сотнями процедур и функций, взаимодействие которых имеет обыденную вложенность более 10ка, не говоря уже о рекурсиях, в итоге управляя файловой системой и рядом экселевских баз - это не букварь. В нем всегда есть спорные не устоявшиеся моменты, которые переделываются время от времени. И невозможно в развивающейся программе все вычистить именно потому, что она все время дописывается\переделывается и развивается. Код файла дорабатывается уже десяток лет. Дорабатывается на ходу. Естественно, часть подпрограмм все время открыты к доработке. Еду на работу\с работы в транспорте - дописываю код в базе, в которой идет и практическая работа. Как показал опыт, держать тестовые базы и в них отлаживать не практично. Т.к. внезапные ошибки в основной рабочей базе требуют молниеносного реагирования и корректировки кода в рабочей версии. В результате становится проблемно эти исправения из рабочих версий переносить еще и в тестовую версию, в которой идет формирование совершенно нового кода. Несколько раз наступал на грабли, когда в рабочем файле внесены внезапные правки\изменения, а в отдельном файле для доразработки и теста новых процедур эти изменния забыл внести. Итог, когда новая версия с новыми процедурами заменяет устаревшую, то затираются и правки багов, которые были уже сделаны прараллельно разработке новых процедур.
Многолетний опыт работы с этим файлом привел меня к тому, что наиболее удобно все таки не держать отдельной копии для разработки, а вносить все коррективы сразу в актуальную рабочую версию. И с этой схемой я развиваю этот файл без проблем уже много лет.  Интерпретатор это позволяет делать с соответствующими настройками. Я задавал вопрос не о том, как переделать несколько мегабайт кода под соответствие новым настройкам интерпретатора, а о том, как настроить отладчик, чтобы он работал так же, как и прежние его версии.
P\S для примера, код "on error" в обсуждаемом модуле встречается 520 раз!!!
Так что совет его использовать, мягко говоря не подходит.

Это сообщение отредактировал(а) НеуФазендник - 6.6.2017, 00:19
PM MAIL   Вверх
Akina
Дата 6.6.2017, 08:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20570
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 25
Всего: 453



У меня создаётся впечатление, что Вы упорно называете то отладчиком, то интерпретатором синтаксический анализатор. Потому как возмущается он небось именно на синтаксические проблемы. Там переменная не определена, тут с параметрами процедуры неувязка... Верно?




--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
НеуФазендник
Дата 6.6.2017, 09:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 108
Регистрация: 9.5.2006

Репутация: нет
Всего: 2



Да. Верно. С ним проблема - с этим самым синтаксическим анализатором, котрый включается и ругается там, где его не ждали, сразу в момент открытия книги.
Есть несколько десятков недоделанных набросков процедур и функций, на которых голову ломаю уже несколько лет. Они висят "в разработке " и доделываются урывками по мере появления вдохновения заниматься ими. Естественно, в недоделанном коде полно синтаксических нестыковок. Вплоть до нарочного употребления русских слов, вместо некоторых функций, которые не знал по синтаксису как оформить.
Поскольку в итоге может оказаться, что принятый изначально алшоритм прийдется в корне перерабатывать, то я пока весь домик концептуально не сложится и все не увяжется, детали не прописываю. Так что синтаксический анализ таких блоков мне нужно отключить. 


Это сообщение отредактировал(а) НеуФазендник - 6.6.2017, 09:53
PM MAIL   Вверх
Akina
Дата 6.6.2017, 12:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20570
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 25
Всего: 453



Тогда это Tools - Options - Editor - Auto Syntax Check.
Вот только скорее всего влоб он не сработает. Проблема в том, что включение этой опции не только включает автопроверку, но ещё и конвертирует код во внутренний формат. И простое отключение не поможет - потому как обратно из этого внутреннего формата в честный VBA-text преобразования не будет. Придётся после выключения автопроверки экспортировать проблемный модуль, удалять его. и затем импортировать заново. Его текст будет храниться именно в виде BAS-текста, и не будет авто-проверяться, пока не дойдёт дело до его компиляции и выполнения.


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
НеуФазендник
Дата 6.6.2017, 22:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 108
Регистрация: 9.5.2006

Репутация: нет
Всего: 2



Благодарю за хороший ответ. Вот это то, что надо. Указанную галку конечно же тыкал. Действительно - не сработала. Переимпортировать не проблема. Но я пока что выкрутился, все же закомментив там, где ругался этот syntax Сheck. Но теперь буду знать и при случае так поступать.
У меня когда-то уже были глюки некоторые с проверкой синтаксиса. Несколько раз именно глюки с некорректым выявлением ошибки в коде, кода чекер начинал ругаться на все сплошняком. Лечил как раз подобным образом. Удалял модуль и копировал его текст извне во вновь созданный.  Глюки таким образом убивались и восстанавливалась корректная работа.
А вообще я в шоке от этого Office 16 после 10ки. 
-ALT-последовательности горячих клавиш как всегда переиначили.
-Статус бар колбасит и текст в нем периодически куда-то съезжает во время работы макросов.
- Проблемы с корректным обновлением экрана по результатам отработки некоторых макросов и в явной форме при изменении размеров столбцов, к примеру. В прошлых версиях таких глюков не наблюдалось в принципе на том же коде.
- Глюки с открытием второго объемного файла, если уже один открыт. Пишет - недостаточно памяти на диске. Хотя на диске этом логическом диске пол гига свободно. Железо прежнее. Но раньше таких глюков не видывал. Приходится сначала копировать файл в другое место. После его открывать оттуда. Иногда и это не срабатывает. Впервые сталкиваюсь с таким.
- Окно выбора и открытия файла из Excel опять модифицировали. Да сколько ж можно? Так было удобно, когда было две зоны - последние файлы и последние каталоги. Нет. Взяли ликвидировали эти удобства...
-Несколько независимых копий программы не открывается. Точнее открываются в режиме взаимосвязанных окон в одном экземпляре Excel. В результате если выполняется макрос, то сколько книг новых не открой, каждая из них не может открыть нового файла, потому что ждет, когда отработает этот первоначально запущенный в одной из книг макрос. В результате, если макрос работает час, то я в течении часа в экселе работать не могу вообще!
- В редакторе теперь видно только код текущей выбранной процедуры. Стрелками от строки к строке не сместишься к коду соседних процедур. Не привычно  и не удобно.
- Быстродействие не улучшилось.

И это я только начал работать и пока кроме неудобств никаких изменений не увидел. Дальше видимо предстоит еще море открытий в виде разочарований найти.
И это называется лицензионный Win и Office.  При всем уважении к создателям, как-то очень грустненько наблюдать подобную бутафорскую смену декораций, приносящую только осложнения в работе.


Это сообщение отредактировал(а) НеуФазендник - 9.6.2017, 21:13
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Программирование, связанное с MS Office"
mihanik staruha

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами



  • Несанкционированная реклама на форуме запрещена
  • Пожалуйста, давайте своим темам осмысленный, информативный заголовок. Вопль "Помогите!" таковым не является.
  • Чем полнее и яснее Вы изложите проблему, тем быстрее мы её решим.
  • Оставляйте свои записи в "Книге отзывов о работе администрации"
  • А вот тут лежит FAQ нашего подраздела


Если Вам понравилась атмосфера форума, заходите к нам чаще!
С уважением mihanik и staruha.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Программирование, связанное с MS Office | Следующая тема »


 




[ Время генерации скрипта: 0.1515 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.