我有几个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
。如果我手动导入模块,一切正常。
感谢您的任何建议。
答案 0 :(得分:1)
和你一样,我无法从workbook_open获得导入工作。您可以将导入代码放在一个单独的模块中,并从workbook_open中调用它,如下所示:
Private Sub Workbook_Open()
Application.OnTime Now, "ImportCode"
End Sub
这似乎对我有用(直接电话没有...)