Страницы: 1
RSS
Как передать переменную в макрос из другой книги?
 
В одной книге есть макрос, он вызывает макрос из другой книги.  
Через Application.Run запускается.  
 
Но мне надо передать ещё переменные для обработки!    
Вот такой вариант уже не работает (может неправильно записываю?) :  
Application.Run "'ТаймерWork.xls'!AddTimerExeParametr(frmAddTimer, Profile)"  
 
Объявление переменной Public тоже не работатетмежду двумя разными книгами.  
 
Подскажите пожалуйста, что можно сделать?  
Спасибо.
 
http://www.cyberforum.ru/vba/thread622059.html
 
Спасибо.  
 
А можно ли как-нибудь попроще - без Tool.References?    
У меня выдается ошибка name conflicts хотя модули называются по-разному.  
 
Мне бы Application.Run вполне подошел бы, только не знаю как правильно записать...
 
> У меня выдается ошибка name conflicts хотя модули называются по-разному.  
Модули могут называться одинаково, ПРОЕКТЫ должны называться по-разному.  
 
> можно ли как-нибудь попроще - без Tool.References?  
Можно. Напишите функцию-"геттер", которая возвращает переменную, и вызывайте через Application.Run:  
 
Книга1  
----------  
Dim MyVar 'переменная модуля, не обязательно Public  
 
Public Function GetMyVar()  
GetMyVar = MyVar  
End Function  
 
Книга2  
----------  
 
x = Application.Run("'ТаймерWork.xls'!GetMyVar")
 
Спасибо, я сначала не понял где имя проекта искать, теперь увидел.  
 
Геттер мне наверное не поможет.  
 
В процедуре send2timer создаются и обрабатыватся две переменные frmAddTimer и Profile. И мне их надо передать в AddTimerExeParametr. Я не понимаю, как геттером тут можно выкрутиться.  
 
Я наверное в ячейки положу эти переменные и потом их оттуда считаю процедурой из второй книги...
Страницы: 1
Наверх