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

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

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

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

Судя по скриншоту - ошибка "индекс вне диапазона". Надо смотреть код макроса. Если на первых трех листах всё работает как надо, а на четвертом появляется ошибка - стоит поискать ошибку в операторах свойств или методов, обращающихся к объектам листа через его индекс в коллекции листов рабочей книги. Чудес-то не бывает.
суть в том что при обичном запуске "из окна выбора макросов" всё работает чётко. А вот на автозапуск - увы с ошибками. Есть какая-то принципиальная разница работы макроса от его вариантов вызова?
...
Рейтинг: 0 / 0
автозапуск макроса
    #36957843
Фотография AndreTM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Конечно.
Для начала - надо активировать нужный рабочий лист.
Ибо я подозреваю, что ссылки в коде макроса у вас относительные...
...
Рейтинг: 0 / 0
автозапуск макроса
    #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
автозапуск макроса
    #36958894
Фотография The_Prist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
Dim wsSh As Object
Set wsSh = Sheets.Add(, Sheets(Sheets.Count))

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

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


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