Как импортировать макросы VBScript в книгу Excel? - PullRequest
3 голосов
/ 27 сентября 2011

У меня есть несколько книг Excel.Все они используют одни и те же макромодули.Я хотел бы добиться, чтобы при редактировании одного модуля в одной рабочей книге не требовалось редактировать один и тот же модуль в других рабочих книгах.

Естественно, мой первый шаг - экспорт при сохранении модулей в файлах .bas.Но проблема в том, что я не могу импортировать их при загрузке.

Я пробовал это:

Private Sub Workbook_Open()
    Set objwb = ThisWorkbook
    Set oVBC = objwb.VBProject.VBComponents
    Set CM = oVBC.Import("C:\Temp\TestModule.bas")
    TestFunc
End Sub

В том же каталоге находится TestModule.bas с содержанием:

Function TestFunc()
    MsgBox "TestFunc called"
End Function

Когда рабочая книга открыта, появляется ошибка компиляции: Sub or Function not defined.Если я вручную импортирую модуль, все будет работать нормально.

Спасибо за любой совет.

1 Ответ

1 голос
/ 27 сентября 2011

Как и вы, я не смог заставить импорт работать из workbook_open. Вы можете поместить свой код импорта в отдельный модуль и вызывать его из вашего workbook_open следующим образом:

Private Sub Workbook_Open()
    Application.OnTime Now, "ImportCode"
End Sub

Мне показалось, что это сработало (прямой звонок не помог ...)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...