Тема: VBA: Запуск процедуры в книге1 из книги2
Всем доброго времени суток!
Для начала опишу, что есть, потом, что хотелось бы получить.
Есть:
1. Открыта книга1
2. При нажатии кнопки на форме начинается формирование отчета:
- создается книга2
- в книге2 создаются листы, на которых после обработки сохраняются результаты
- последний лист отчета в книге2 формируется путем копирования целиком листа из книги1
вот тут начинаются "непонятки"
1. При копировании листа из книги1 вместе с содержимым листа в книгу2 копируются все процедуры событий (в частности Worksheet_Activate()
2. В этом событии идет вызов процедуры (Proc()), которая находится в книге1 и событие возникает, как только я вставляю скопированный лист в книгу2.
3. процедура (Proc()) в книге1 объявлена, как Public Sub и находится в модуле книги1, судя по всем учебникам и форумам, должна запускаться из любой открытой книги...
Но обработка события даже не начинается, т.к. VBA сразу сообщает об ошибке в процедуре события - Нет вызываемой процедуры Proc()
Пробовал вызвать Proc() с помощью Application.Run"'Имя файла.xlsm'!Proc()" - везде, что читал, говорится, что в этом случае ищется открытый файл с указанным именем, в нем ищется указанная процедура и запускается. В случае, если указанный файл не открыт, то ищется файл с таким именем в корневой для книги2 папке, отрывается и запускается процедура.
У меня, сразу же ищет файл в корневой папке, естественно, не находит его и вылетает с ошибкой,
Решение (обходное) есть - создать лист в книге2 с нужным именем и скопировать на него данные с листа книги1.
Но, хотелось бы понять и разобраться, в чем я "косячу" с Application.Run?
Может, кто-нибудь, хотя бы натолкнуть на мысль, в каком направлении искать? Буду признателен, два дня уже ковыряю код, все идеи кончились...