如何将VBScriptmacros导入Excel工作簿?

我有几个Excel工作簿。 他们都共享相同的macros模块。 我想实现的是在一个工作簿中编辑一个模块,而不必编辑其他工作簿中的相同模块。

当然,我的第一步是导出保存在.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 。 如果我手动导入模块,一切正常。

感谢您的任何build议。

像你一样,我无法从workbook_open获得导入工作。 你可以把你的导入代码放在一个单独的模块中,然后像下面这样从你的workbook_open中调用它:

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

这似乎为我工作(直接电话没有…)