Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 29.09.2016, 18:52   #1
armati lepori
Пользователь
 
Аватар для armati lepori
 
Регистрация: 23.09.2016
Сообщений: 34
По умолчанию Проблемы при массовом внедрении кода в модуль листа

Помогите! Потратил кучу времени. Локализовал ошибку. Но что делать не знаю. Пытаюсь внедрить код события в модуль листа.
Процедура внедрения кода, по существу взята отсюда http://www.excel-vba.ru/chto-umeet-e...pirovat-modul/
Она хорошо оттестирована и сама по себе работает отлично – в любой лист в любом порядке. Проблема при массовом применении. Пишу макрос перебора листов (любым способом. не только циклом, но и простым перечислением). Каждый раз обращаюсь к процедуре внедрения – получаю жесткий сбой-ошибку Excel. Дебагер, естественно, бесполезен.
Ниже текст. Тестовые макросы A_Test5() и A_Teast6() работают отлично и в любом порядке. A_Test__56() гарантированно выбрасывает из Excel.
Удалять содержимое модулей листов Лист5 и Лист6 не забываю. Чистить все объекты после обращения пытался - не помогает.
Вложения
Тип файла: rar Создать_событие.rar (11.3 Кб, 9 просмотров)
Я не волшебник - я только учусь.
armati lepori вне форума Ответить с цитированием
Старый 29.09.2016, 19:55   #2
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

У меня все работает (и Test__56 тоже)

совет: не использовать тот код, что у вас (внедрение кода означает, что вы либо сверхнавороченный проект делаете, либо перемудрили там, где это вообще не нужно),
а прописать вручную, один раз, один обработчик (для всех листов) в модуле ЭтаКнига:
Код:
Private Sub Workbook_SheetBeforeDoubleClick(ByVal Sh As Object, ByVal Target As Range, Cancel As Boolean)
    Cancel = True
    MsgBox "даблклик на листе " & Sh.Name
End Sub

Последний раз редактировалось EducatedFool; 29.09.2016 в 19:57.
EducatedFool вне форума Ответить с цитированием
Старый 29.09.2016, 20:05   #3
armati lepori
Пользователь
 
Аватар для armati lepori
 
Регистрация: 23.09.2016
Сообщений: 34
По умолчанию

Цитата:
Сообщение от EducatedFool Посмотреть сообщение
У меня все работает (и Test__56 тоже)
Вот это плохо! Значит надо ковырять тонкие настойки

А вот совет Ваш ... Просто в яблочко! СПАСИБО!!!
Может и хорошо, что не получилось сделать по дурацкому варианту... Может потому и не получилось!

Но проблему буду ковырять..... Рано или поздно проблема всплывет вновь.
Проект у меня действительно навороченный, но это не существенно - я выделил этот простейший тест и он у меня не идет.
Я не волшебник - я только учусь.

Последний раз редактировалось armati lepori; 29.09.2016 в 23:38.
armati lepori вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Автоматическая смена связанных ячеек в полях со списком, при их массовом создании LiveFIre13 Microsoft Office Excel 2 15.06.2011 10:02
Защита листа, проблемы с исполнением кода blackarrow Microsoft Office Excel 2 02.06.2011 20:48
отображение данных первого листа, при активации ячейки второго листа Akmal-Sharipov Microsoft Office Excel 4 03.12.2010 14:48
запись в модуль листа gsg Microsoft Office Excel 2 02.11.2010 09:05
Культура в массовом ПО Levsha100 Свободное общение 44 21.05.2010 21:13