И всетаки не получается самозапуск макроса...

Программирование на Visual Basic for Applications
Аэроплан
Начинающий
Начинающий
 
Сообщения: 21
Зарегистрирован: 22.10.2003 (Ср) 12:06

И всетаки не получается самозапуск макроса...

Сообщение Аэроплан » 22.10.2003 (Ср) 15:13

Как сделать так, чтобы макрос запускался сразу при открытии Excel-таблицы, содержащей этот макрос?

Tuco
Постоялец
Постоялец
 
Сообщения: 508
Зарегистрирован: 18.06.2003 (Ср) 16:37
Откуда: Подмосковье

Сообщение Tuco » 22.10.2003 (Ср) 15:45

Sub Worksheet_Activate()
Call (название макроса)
End sub
"There's more than one way to do it!"

Аэроплан
Начинающий
Начинающий
 
Сообщения: 21
Зарегистрирован: 22.10.2003 (Ср) 12:06

Так ведь этот SUB тоже чем то запустить надо?

Сообщение Аэроплан » 22.10.2003 (Ср) 16:04

А этот код где пишется? Не в воздухе же он висит...
Все равно его запустить надо? или он отработается сразу при открытии файла?
Повторюсь - модуль внутри того файла, который открывается, должен быть запущен первым и сразу...

:roll: Хотя это наверное можно обойти как-нибудь или ... на этом мысль останавливается... :wink:

Tuco
Постоялец
Постоялец
 
Сообщения: 508
Зарегистрирован: 18.06.2003 (Ср) 16:37
Откуда: Подмосковье

Сообщение Tuco » 23.10.2003 (Чт) 10:48

Как ни обломно мне это говорить, но мой вариант не работает. Я его писал пользуясь хелпом и не попробовал сам вчера. Будем искать....
"There's more than one way to do it!"

Аэроплан
Начинающий
Начинающий
 
Сообщения: 21
Зарегистрирован: 22.10.2003 (Ср) 12:06

Я тоже ищу...

Сообщение Аэроплан » 23.10.2003 (Чт) 10:51

Полночи в книжках просидел... А толку - ноль...
Или пропустил что-то, или там об этм ни слова...
в общем - будем искать (коня без крыльев) :wink:

RayShade
Scarmarked
Scarmarked
Аватара пользователя
 
Сообщения: 5511
Зарегистрирован: 02.12.2002 (Пн) 17:11
Откуда: Russia, Saint-Petersburg

Сообщение RayShade » 23.10.2003 (Чт) 10:55

Есть событие Workbook_Open.

Вызывается при открытии книги. Запиши в его обработчик вызов свеого макроса и вперед.

Tuco
Постоялец
Постоялец
 
Сообщения: 508
Зарегистрирован: 18.06.2003 (Ср) 16:37
Откуда: Подмосковье

Сообщение Tuco » 23.10.2003 (Чт) 11:02

Не работает это абсолютно! Для обработки событий, типа этого, как я обнаружил, нужно где-то всунуть WithEvents, только не совсем понятно куда и как....
"There's more than one way to do it!"

Vitaly1
Брехман
Брехман
 
Сообщения: 1578
Зарегистрирован: 30.12.2002 (Пн) 16:35
Откуда: Russia, Mosсow

Сообщение Vitaly1 » 23.10.2003 (Чт) 11:13

Господи ты, Боже мой!

1) В редакторе VBA на дереве проекта выбери модуль книги, он называется ThisWorkbook
2) в модуле книги из верхнего левого списка выбираешь "Workbooks" - имя объекта, а из правого "Open" - событие.
3) Внутри событийной процедуры запускаешь макрос, можно через OnTime. :P

Tuco
Постоялец
Постоялец
 
Сообщения: 508
Зарегистрирован: 18.06.2003 (Ср) 16:37
Откуда: Подмосковье

Сообщение Tuco » 23.10.2003 (Чт) 11:21

у меня заработал мой первый вариант! Спасибо!
"There's more than one way to do it!"

Аэроплан
Начинающий
Начинающий
 
Сообщения: 21
Зарегистрирован: 22.10.2003 (Ср) 12:06

И у меня пошло...

Сообщение Аэроплан » 23.10.2003 (Чт) 11:49

Я с этими областями то разобрался ... Ну там "Эта книга" и т.д.
Я снова забыл (или не знал, но пришлось догадываться), что имя модуля тоже писать с привязкой к листу1 надо (ну или где он там находится...)

Всем спасибо...


Вернуться в VBA

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 54

    TopList