Добрый день! Подскажите, пожалуйста, как решить следующую проблему. Я работаю в книге, при этом мне нужно с разной периодичностью или одновременно(параллельно) запустить несколько макросов в других книгах. Понимаю, что можно сделать это каждый раз открывая нужную книгу и запускать соответствующий макрос. Либо запускать макросы последовательно - но это не то, нужна экономия времени. Т.е. хочу автоматизировать.
По автоматизации делаю следующее, например, - запускаю Excel как объект, открываю в нем нужную книгу и вручную запускаю макрос, тогда можно работать параллельно - так сказать полуавтомат.
Что не получается? - Запустить макрос в новой книге автоматически "правильно", он подвешивает и первую книгу, а мне в ней работать.
Пробовал следующие алгоритмы решения:
1. Через Object:
Пробовал 2 варианта запуска макроса.
2. Через Application, с проверкой создания:
3. Через with, ну мало ли:
Может быть макрос не той командой запускаю - "run"?
Может копать в сторону надстройки - через личную книгу создавать ярлык и автозапуск?
Еще читал - про возможность автоматического запуска макроса при открытии файла и перехвата dde-запросов.
Помогите или направьте на путь
Не знаю, нужен ли тут пример, есть два файла - один исполняющий, другой исполняемый.
По автоматизации делаю следующее, например, - запускаю Excel как объект, открываю в нем нужную книгу и вручную запускаю макрос, тогда можно работать параллельно - так сказать полуавтомат.
Что не получается? - Запустить макрос в новой книге автоматически "правильно", он подвешивает и первую книгу, а мне в ней работать.
Пробовал следующие алгоритмы решения:
1. Через Object:
| Код |
|---|
Dim oXL As Object, wb As Object
Set oXL = CreateObject("Excel.Application")
oXL.Visible = True
Set wb = oXL.workbooks.Open("C:\book1.xlsm")
oXL.Run "A_macro"
'Application.Run ("'" & wb.Path & "\" & wb.Name & "'" & "!" & "A_macro")
Set oXL = Nothing |
Пробовал 2 варианта запуска макроса.
2. Через Application, с проверкой создания:
| Код |
|---|
Dim aXL As Excel.Application
Set aXL = New Excel.Application
aXL.Visible = True
aXL.workbooks.Open "c:\book1.xlsm"
aXL.Run "A_macro"
'Application.Run ("c:\book1.xlsm!A_macro") |
3. Через with, ну мало ли:
| Код |
|---|
With CreateObject("Excel.Application")
.Visible = True
.workbooks.Open "c:\book1.xlsm"
.Run "A_macro"
End With |
Может быть макрос не той командой запускаю - "run"?
Может копать в сторону надстройки - через личную книгу создавать ярлык и автозапуск?
Еще читал - про возможность автоматического запуска макроса при открытии файла и перехвата dde-запросов.
Помогите или направьте на путь
Не знаю, нужен ли тут пример, есть два файла - один исполняющий, другой исполняемый.
Изменено: - 22.12.2016 14:20:47