更新 - 2016年1月20日 - 我相信@Alistair发布的答案是正确的,我正在努力验证。
自从我上一篇文章以来,我尝试修复Office 16 64位环境。不工作。
为了让这个回到一个坚实的起点,我已经在我的常规Windows 10机器上降级到Office 2013(32位)。下面的代码按预期工作。接下来,我将为2016年安装构建另一个VM,并查看32位版本的Office 16是否正常工作。
更新 - 2016年1月19日1658 PT - 我将探索使代码了解64位-vs-32位环境。见:https://msdn.microsoft.com/en-us/library/office/gg264421.aspx
如果这解决了问题,我将使用解决方案更新此问题。谢谢!
*****以下原帖**************************
这是在MS Access中运行宏时打开MS Project文件并将数据从MS Project任务导入Access。下面的代码是一个示例。我们得到的错误是在Windows 10和MS Office 2016下。在运行Windows 7和Office 2013的另一台计算机上不会发生此错误; MS Project版本与Office版本一致。
当我尝试实例化MSProject.Application对象时,我们遇到了自动化错误。错误是:
运行时错误'-2147467229(80004023)':
自动化错误遇到Microsoft Software Installer错误
这是代码:
Option Compare Database
Option Explicit
Sub test01()
Dim appMSProject As MSProject.Application
On Error GoTo ErrorHandler
'*** The next line is where we pop the error ***
Set appMSProject = New MSProject.Application
appMSProject.FileOpenEx Name:="C:\IMS\Project1.mpp"
'*** next line is just so I can see if something odd is going on ***
MsgBox (appMSProject.About())
appMSProject.Quit SaveChanges:=pjDoNotSave
Exit Sub
ErrorHandler:
MsgBox ("Error Number: " & Err.Number & vbCrLf & _
"Error Desc.: " & vbCrLf & _
Err.Description)
Exit Sub
End Sub
有趣的是,在调试模式下,如果我删除“新”并退回到它,有时,它将运行。
我们尝试关闭提示登录到项目服务器,项目到项目链接,并将宏安全性设置为Access和Project上的最低设置。我们还尝试使用不同的.MPP文件,以防文件损坏或可能不符合MS Project 2016,这是一个很长的镜头,因为文件在对象实例化之后打开了。
我也尝试过这种技术:
Dim appMSProject As Object
...
Set appMSProject = CreateObject("MSProject.Application")
这会产生相同的错误。我甚至从这里复制并粘贴了代码示例:qazxsw poi
这里的开关是参考。我正在使用Microsoft Project 16对象库。 MSDN文章指定Microsoft Project 15对象库。我试图找到一个较新的MSDN文章,规范,对象模型或适用于Project 16的任何其他内容。没有快乐。
虽然我在线发现了一些非常通用的自动化错误建议,但几乎所有这些示例在它们启动Application对象后都遇到了问题,而不是我遇到问题。一般来说,MS Project VBA也有很少的帮助。当然,这是一个较小的社区。只是让你知道我看了。
我能想到的是,我错过了掌握Office 2016 / Project 2016 VBA文档的方法,并且有一种新技术来实例化MSProject.Application对象。如果它很简单,任何人都知道神奇的URL,请传递它。
先感谢您! - jd
我认为这是在您的计算机上安装Microsoft Project 2016的问题。
我刚刚在Access 2016和Project 2016的机器上测试了您的代码,它第一次运行。
我建议在Project上做一个https://msdn.microsoft.com/en-us/library/office/ff865152.aspx,也可能在Access上做。
您可以尝试安装KB3114538。显然,添加了一些2016 VBA对象属性,但与旧版本不向后兼容。
确保项目和Office完全更新可能也很好。
Rod Gill项目MVP
我将Office 2016 32位升级到64位时遇到了同样的问题。 VBA中的所有Outlook对象都失败,导致出现消息“自动化错误:遇到Microsoft软件安装程序错误”。我重命名了与Outlook关联的注册表项,并在下一次调用它显然已重建,然后一切都开始工作了。更多信息,请访问:repair install在我的案例中不需要重新安装Office。