我有一个 excel 宏,它应该打开 MS Project 并对一些自定义字段进行更改,然后再次关闭它。Excel 和 Project 都是 2010 版本,项目存储在 MS Project Server 2010 上。
当我手动打开 MS Project 然后用 VBA 检测它时,一切正常。但是当我使用 VBA 打开一个新的 Project 实例时(因为我没有手动打开 MS Project),它会抛出一个错误:
这是代码的两个版本:
Sub open_project_with_error()
Dim projapp As MSProject.Application, prj As Project
Set projapp = New MSProject.Application
projapp.FileOpenEx Name:="<>\Name of my project", ReadOnly:=False
Set prj = Projects("Name of my project")
' Do more things...
End Sub
Sub open_project_without_error()
' Manually open MS Project application before running this VBA
Dim projapp As MSProject.Application, prj As Project
Set projapp = GetObject(, "MSProject.Application")
projapp.FileOpenEx Name:="<>\Name of my project", ReadOnly:=False
Set prj = Projects("Name of my project")
' Do more things...
End Sub
自然,我预计问题出在语句New MSProject.Application
上。但是,正如预期的那样,这个 sub 完美地工作:
Sub open_project_and_display_about()
Dim projapp As MSProject.Application, prj As Project
Set projapp = New MSProject.Application
Debug.Print projapp.About()
End Sub
这意味着错误仅由 和 的组合New MSProject.Application
触发New MSProject.Application
。
有什么办法解决吗?