Страницы: 1
RSS
Вопрос к ПРОФИ по Reference
 
Нашел в форуме следующее:  
Еще вариант: установить Reference на связанную книгу.  
 
1. Как это сделать.  
 
1.1. В связанной книге зайти в VBE, меню Tools - VBA Project Properties и на вкладке General присвоить какое-нибудь уникальное имя VBA-проекту, например: TestProject01. Сохранить связанную книгу, и можно закрыть ее, но удобнее не закрывать до выполнения следующего пункта.  
 
1.2. В основной книге зайти в VBE, из меню Tools - References - Browse - Тип файлов: MS Office Excel Files установить ссылку на вызываемую (связанную книгу). Сохранить основную книгу.  
Если связанная книга не была закрыта, то можно не искать ее через Browse, а сразу найти в списке References и установить флажок.  
На одну и ту же связанную книгу (кодов) могут быть установлены связи из различных основных книг (данных).  
 
Теперь при загрузке основной книги (книг) автоматически будет загружаться и связанная.    
А из основной книги можно вызывать макросы связанной, как будто они написаны в основной, например, так:    
Call МакросСвязаннойКниги()  
 Но немогу связать макросы т.е. как описано выше Call МакросСвязаннойКниги() не работает.    
Например (как я понял):    
(связанная книга) Книга1 - Лист1:  
Sub qwe ()  
Cells(1,1)=10  
End sub    
(основная книга) Книга2 - Лист1:  
Sub qwe_call ()  
Call qwe  
End sub  
не работает, выдает ошибку.  
Я наверное что-то не понял и прошу объяснить подробнее.
 
Во-первых, вместо манипуляций типа "из меню Tools - References - Browse - Тип файлов: MS Office Excel Files установить ссылку" можно в редакторе VBA (в окне Project Windows) просто перетащить значок ондой книги на другую - при этом установится ссылка.  
 
Во-вторых, в связанной книге помещайте макросы не в модули книги или листов, а в СТАНДАРТНЫЕ МОДУЛИ - тогда всё будет работать.  
 
И не надо никаких CALL:    
 
Sub МакросВосновнойКниге()  
   testmacro ' из связанной книги  
End Sub
 
{quote}{login=EducatedFool}{date=01.10.2009 10:58}{thema=}{post}Во-первых, вместо манипуляций типа "из меню Tools - References - Browse - Тип файлов: MS Office Excel Files установить ссылку" можно в редакторе VBA (в окне Project Windows) просто перетащить значок ондой книги на другую - при этом установится ссылка.  
 
Во-вторых, в связанной книге помещайте макросы не в модули книги или листов, а в СТАНДАРТНЫЕ МОДУЛИ - тогда всё будет работать.  
 
И не надо никаких CALL:    
 
Sub МакросВосновнойКниге()  
   testmacro ' из связанной книги  
End Sub{/post}{/quote}  
 
Большое спасибо EducatedFool! Все понятно. На простом примере попробовал - получается. Буду переносить в свои книги. Вопрос следующий: будет ли это работать в сетевом варианте? Т.е. связанная книга будет находиться на сервере.
 
это просто для использования макросов из другой книги ?
 
можно и с call, но тогда скобочки после имени подпрограммы обязательны:  
Call qwe()
Живи и дай жить..
 
Не будет ли ошибки если в связанную установить пароль на откравание? Без пароля не обойтись т.к. она не должна быть скрытой.
Страницы: 1
Читают тему
Наверх