Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / автозапуск макроса / 12 сообщений из 12, страница 1 из 1
15.11.2010, 10:36
    #36956293
Alex877
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
автозапуск макроса
Ребят, вопрос простой. Записал самый обычный макрос (из выгруженных данных копирует их по разным ячейкам, тем самым делая необходимую форму справки на печать). Как сделать так, чтоб макрос автоматически срабатывать при открытии этого файла?
...
Рейтинг: 0 / 0
15.11.2010, 10:46
    #36956319
Aster32
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
автозапуск макроса
Записать код макроса в событие Workbook_Open
...
Рейтинг: 0 / 0
15.11.2010, 14:21
    #36957052
A_Cross
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
автозапуск макроса
Aster32,

Суть вопроса вот в чем:
для разных выборок с sql-сервера в ексель были созданы несколько макросов. далее по долгу работы некоторые макросы были объедены в один. Учитывая что код их длинный, последний макрос - это макрос на запуск двух макросов. Практически все макросы состоят из вытягивания данных на лист с последующим добавленияем недостающих листов и их переименовываниях.
Решил поставить один из запускающих 2 макроса на открытие файла. И как результат получил ошибку после заполнения третьего листа. Вернее до третьего листа включительно данные вытаскиваются и лист переименовуется. потом создается 4-й лист и весь процес останавливается.
Причем если макрос просто запустить "вручную" то все отрабатывается без ошибок. Ошибка только при автозапуске.
Что это за ошибка?
Автозапуск выглядит так
Код: plaintext
1.
2.
Private Sub Workbook_Open()
    Application.Run "PERSONAL.XLS!runall"
End Sub
ЗЫ Все макросы находятся в личной книге
...
Рейтинг: 0 / 0
15.11.2010, 14:27
    #36957072
Alex877
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
автозапуск макроса
а как записать код макроса в событие Workbook_Open? допустим я записал макрос с названием "макрос10" куда его вставить?
...
Рейтинг: 0 / 0
15.11.2010, 14:33
    #36957095
A_Cross
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
автозапуск макроса
Alex877,

Создать новую книгу. Открыть редактор ВизуалБейсик и далее вызвать просмотр кода Workbook
туда и вставить
...
Рейтинг: 0 / 0
15.11.2010, 15:08
    #36957274
Alex877
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
автозапуск макроса
Спасибо огромное!
...
Рейтинг: 0 / 0
15.11.2010, 15:58
    #36957503
Aster32
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
автозапуск макроса
A_Cross

Судя по скриншоту - ошибка "индекс вне диапазона". Надо смотреть код макроса. Если на первых трех листах всё работает как надо, а на четвертом появляется ошибка - стоит поискать ошибку в операторах свойств или методов, обращающихся к объектам листа через его индекс в коллекции листов рабочей книги. Чудес-то не бывает.
...
Рейтинг: 0 / 0
15.11.2010, 16:23
    #36957609
A_Cross
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
автозапуск макроса
Aster32A_Cross

Судя по скриншоту - ошибка "индекс вне диапазона". Надо смотреть код макроса. Если на первых трех листах всё работает как надо, а на четвертом появляется ошибка - стоит поискать ошибку в операторах свойств или методов, обращающихся к объектам листа через его индекс в коллекции листов рабочей книги. Чудес-то не бывает.
суть в том что при обичном запуске "из окна выбора макросов" всё работает чётко. А вот на автозапуск - увы с ошибками. Есть какая-то принципиальная разница работы макроса от его вариантов вызова?
...
Рейтинг: 0 / 0
15.11.2010, 17:32
    #36957843
AndreTM
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
автозапуск макроса
Конечно.
Для начала - надо активировать нужный рабочий лист.
Ибо я подозреваю, что ссылки в коде макроса у вас относительные...
...
Рейтинг: 0 / 0
16.11.2010, 10:28
    #36958795
A_Cross
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
автозапуск макроса
AndreTM,

Я б сказал что даже наоборот. Но именно в этом то и была проблема. Новая книга содержит три листа
Лист1, Лист2, Лист3. Далее при добавлении нового листа:
- при ручном запуске макроса, добавлялся Лист4, Лист5 и т.д.
- при запуске макроса на автооткрытие, добавлялся Лист1, Лист2 и т.д.
Прийдется либо менять код на независимую привязку, на "ActiveSheet" вместо
Код: plaintext
1.
2.
Sheets.Add After:=Sheets(Sheets.Count)
    Sheets("Лист8").Select
    Sheets("Лист8").Name = "отчет_name"
...
Рейтинг: 0 / 0
16.11.2010, 11:03
    #36958894
The_Prist
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
автозапуск макроса
Код: plaintext
1.
Dim wsSh As Object
Set wsSh = Sheets.Add(, Sheets(Sheets.Count))

затем можете в коде обращаться к листу через wsSh
...
Рейтинг: 0 / 0
16.11.2010, 11:07
    #36958906
A_Cross
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
автозапуск макроса
The_Prist,

спс. покурю в эту сторону:)
...
Рейтинг: 0 / 0
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / автозапуск макроса / 12 сообщений из 12, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]