我有依靠Microsoft Office Project对象库16.0运行的Excel VBA代码。当手动选择库时(通过转到工具->引用并选中它),它可以完美执行。我不希望我的用户不得不选择项目库-实际上,我希望他们完全远离VBA编辑器-因此,我尝试使用其GUID内联添加它。
对于库GUID,我found {A7107640-94DF-1068-855E-00DD01075445} 分别具有主要和次要编号4和9。然后,我尝试在未选择库的情况下运行以下命令:
Sub testReference()
ThisWorkbook.VBProject.References.AddFromGuid GUID:="{A7107640-94DF-1068-
855E-00DD01075445}", Major:=4, Minor:=9
Dim MP_App As MSProject.Application
Set MP_App = CreateObject("Msproject.Application")
Dim MP_Project As MSProject.Project
MP_App.Visible = True
MP_App.FileOpenEx Name:="C:\Users\Adam Wertheimer\Desktop\testProjectFile.mpp"
End Sub
除了标记行之外
Dim MP_App As MSProject.Application
,出现编译错误“未定义用户定义的类型” ,因此库未正确添加或缺少其他内容。 我真的不希望所有用户都必须手动检查项目库,但是如果需要的话,就这样吧。任何建议/帮助将不胜感激。
答案 0 :(得分:0)
通过相关的clsid guid导入库参考并不能立即访问所有系。您可能需要遮掩一些直接引用。
Dim MP_App As object
Dim MP_Project As object
通过将Microsoft Office Project特定的var声明为vanilla对象,您应该能够实例化一个准备好接受后期绑定CreateObject的var。创建MP_App之后,应该可以将MP_Project设置为其成员之一。