powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Зпусть макрос через макрос
9 сообщений из 9, страница 1 из 1
Зпусть макрос через макрос
    #37202545
skleppi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день!

У меня в персональной книге макросов есть определенный набор макросов, необходимых для обработки файлов.

Я бы хотел иметь возможность запускать их открытой книги. Т.е. создать в книгу, из которой можно было бы запустить макрос, который брал бы необходимые мне файлы и запускал в них нужные макросы обработки.

НО при выполнении кода:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
Public Sub Launch_macro(ByVal file_to_update As String, ByVal macro_name As String)
Dim objExcel
Dim objWorkbook

Set objExcel = CreateObject("Excel.Application")
objExcel.Visible = True
On Error Resume Next

Set objWorkbook = objExcel.Workbooks.Open(file_to_update)
Windows(objWorkbook).Activate

objExcel.Run "'PERSONAL.XLS'!" & macro_name

objWorkbook.Close True
objExcel.Quit

Set objWorkbook = Nothing
Set objExcel = Nothing
End Sub




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

а выполняется этот код из какого приложения?
...
Рейтинг: 0 / 0
Зпусть макрос через макрос
    #37202564
skleppi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
The_Prist,

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

А зачем тогда все эти танцы с бубном? Зачем создавать новое приложение Excel? Почему сразу не сделать так?
Код: plaintext
1.
2.
3.
Public Sub Launch_macro(ByVal file_to_update As String, ByVal macro_name As String)
Workbooks.Open file_to_update
Application.Run "'PERSONAL.XLS'!" & macro_name
End Sub
...
Рейтинг: 0 / 0
Зпусть макрос через макрос
    #37202578
skleppi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
The_Prist,

это действительно сработало.. вау, спасибо!!!!

а почему епрвый способ не сработал?
...
Рейтинг: 0 / 0
Зпусть макрос через макрос
    #37202616
_slan_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skleppi,

потомучто во вновьсозданном экземпляре приложения нет такого макроса.
...
Рейтинг: 0 / 0
Зпусть макрос через макрос
    #37202625
Фотография The_Prist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skleppiа почему епрвый способ не сработал?Потому что Вы как-то уж очень в обход пошли.

Я так полагаю, если Вы отключите эту строку - On Error Resume Next в первоначальном макросе, то поймете почему не работает. Предположу, что PERSONAL.XLS не открылась при запуске второго экземпляра приложения. Т.к. чаще всего через CreateObject приложения запускаются без сторонних файлов и без реакции на события.

И эту строку тоже по-хорошему надо убрать: Windows(objWorkbook).Activate
Причины две:
1. Открытый файл и так активный.
2. Попытка активации приведет к ошибке, т.к. Вы неверно обращаетесь к книге. Верно будет так: objWorkbook.Activate
...
Рейтинг: 0 / 0
Зпусть макрос через макрос
    #37202635
skleppi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
The_Prist,

спасибо!!

работа с объктами очень запутанная - сложно найти по ним хорошую справку)
...
Рейтинг: 0 / 0
Зпусть макрос через макрос
    #37202942
skleppi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
_slan_,

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


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