Страница: 1 |
Страница: 1 |
Вопрос: Запуск макроса
Добавлено: 22.04.05 14:46
Автор вопроса: BeTe
Есть ли возможность в коде макроса выполнить макрос находящийся в другой книге? Ну например выполняя Макрос1 из Книги1 запустить на выполнение Макрос1 из Книги2?
Ответы
Всего ответов: 6
Номер ответа: 1
Автор ответа:
User Unknown
Вечный Юзер!
ICQ: uu@jabber.cz
Вопросов: 120
Ответов: 3302
Профиль | | #1
Добавлено: 22.04.05 15:03
Dim wb As Workbook
Set wb = Workbooks.Open("c:\test.xls"
wb.Worksheets("List1".[a1] = 7
'Макрос должен быть Public
Application.Run wb.Name + "!TestMacros"
вроде как-то так..
Номер ответа: 2
Автор ответа:
BeTe
Вопросов: 6
Ответов: 30
Профиль | | #2
Добавлено: 22.04.05 15:43
Делаю так:
Запускаю 2 книги, в каждой есть module1. В первой книге в module1 пишу:
Sub Macros1()
Application.Run Workbooks("Книга2.xls" + "!Test1"
End Sub
Во второй пишу так:
Public Sub TEST1()
MsgBox "типа тест"
End Sub
Запускаю на выполнение Macros1 и получаю:
Run-time error '9':
Subscript out of range
Спрашивается, что не так?
Номер ответа: 3
Автор ответа:
User Unknown
Вечный Юзер!
ICQ: uu@jabber.cz
Вопросов: 120
Ответов: 3302
Профиль | | #3
Добавлено: 22.04.05 15:51
Книга2.xls сохранена?
Номер ответа: 4
Автор ответа:
BeTe
Вопросов: 6
Ответов: 30
Профиль | | #4
Добавлено: 22.04.05 16:01
нет она была не сохранена...
Вот сейчас сохранил обе книги, все как положено.
Выдается ошибка о том что обект не поддерживает данное свойство или метод.
Номер ответа: 5
Автор ответа:
User Unknown
Вечный Юзер!
ICQ: uu@jabber.cz
Вопросов: 120
Ответов: 3302
Профиль | | #5
Добавлено: 22.04.05 16:10
вот чего нарыл в мысыдыны. Проверил, работает:
Dim XL As Object
Set XL = CreateObject("Excel.Application"
XL.Workbooks.Open "C:\Книга2.xls"
XL.Run "Лист1.testmacros"
Номер ответа: 6
Автор ответа:
BeTe
Вопросов: 6
Ответов: 30
Профиль | | #6
Добавлено: 22.04.05 16:23
ну вобщем да, кажись срабатывает. Теперь уже можно плясать дальше. Огромное спасибо.