Excel 在Windows 7上打开PowerPoint演示文稿时VBA失败
我在WindowsXP上的Excel2007中编写了一个VBA宏,将Excel电子表格中的数据复制到powerpoint演示文稿中。 在新安装的Windows 7上运行此启用宏的电子表格时失败。 因此,我提取了无法指出问题的代码,并且在尝试打开现有powerpoint文件时似乎失败了。我已经尝试在Office2010和Office2007中运行此代码 我正在尝试使用的代码(只是下面显示的问题部分) 宏在演示文稿上失败。打开上面的行,出现以下错误Excel 在Windows 7上打开PowerPoint演示文稿时VBA失败,excel,vba,windows-7,powerpoint,Excel,Vba,Windows 7,Powerpoint,我在WindowsXP上的Excel2007中编写了一个VBA宏,将Excel电子表格中的数据复制到powerpoint演示文稿中。 在新安装的Windows 7上运行此启用宏的电子表格时失败。 因此,我提取了无法指出问题的代码,并且在尝试打开现有powerpoint文件时似乎失败了。我已经尝试在Office2010和Office2007中运行此代码 我正在尝试使用的代码(只是下面显示的问题部分) 宏在演示文稿上失败。打开上面的行,出现以下错误 Run-time error '-21474672
Run-time error '-2147467259 (80004005)':
Method 'Open' of object 'Presentations' failed
我已经在电子表格的VBEditor中的“引用”设置中启用了PowerPoint 12.0对象库。所有其他引用都与在“我的Windows XP”框中运行且没有错误的文件完全匹配
我在网上到处寻找答案,但什么也找不到。我读了一些关于Windows7和脱机文件的内容,所以尝试关闭它,但没有任何帮助
我也以管理员用户身份登录,并尝试将我打开的pptx移动到其他目录,但没有成功
我正在运行以下版本的Windows:
Windows 7 Professional
Service Pack 1
64 Bit
任何帮助都将不胜感激 文件的路径是变量(或常量) 如果是这样的话,难道不是吗
PowerPointFile=PowerPointApplication.Presentations.Open(路径到文件&“\test.pptx”)
这在Win7 SP1 64位操作系统上的office 2016中确实有效
应该适合Office 2010
也可能是John关于文件路径的建议
Sub test()
Dim PowerPointFile As PowerPoint.Presentation
Dim PPTObj As Object
Set PPTObj = CreateObject("PowerPoint.application")
Set PowerPointFile = PPTObj.Presentations.Open("C:\test.pptx")
End Sub
如果删除Powerpoint引用并将
Powerpoint.Application
和Powerpoint.Presentation
更改为对象,会发生什么情况?另外,在createobject
之后添加一个PowerPointApplication.Visible=True
,代码在我这端工作,有两个小区别:我为文件路径声明了一个字符串,我这端是PowerPoint 14.0,而不是12.0。希德的方法也很有效。您确定您的路径声明正确吗?您正在移动计算机,因此它可能已更改。当我传递错误的文件路径时,会显示我端的80004005
错误。:)谢谢你的评论。我只是尝试了你的建议,因此取消了Powerpoint引用的链接,使用对象类型而不是Powerpoint类型,并添加了Visible=True(我正在使用它,但忘记添加到上面的代码中),但仍然得到相同的错误。问题可能是PowerPoint对象库版本吗?我只跑了12英里?自从写了这篇文章之后,我还更新了Office,因为发布了一个ServicePack2,但这一点都没有帮助。还有其他建议吗?BK201-我尝试将文件移动到根目录(C:),因此路径是C:\file.pptx,但仍然是相同的错误。然后我尝试在字符串变量中设置路径,而不是直接在Open函数中设置路径,但仍然存在相同的问题:仅供参考:自从今早升级后,我现在有PowerPoint 14.0对象库,没有任何更改,仍然会出现错误。在XP下工作,但在Win7下不工作。。。您可能会遇到UAC问题?确保您对存储文件的目录拥有完全权限,或者作为测试,将其放在临时目录中。感谢您的评论John,尽管我在7年前发布了这篇文章,但从内存中看,PATH_TO_文件不是一个变量,只是我向您展示代码中存在绝对路径的一个示例,没有给出实际路径,但感谢您的建议。
Sub test()
Dim PowerPointFile As PowerPoint.Presentation
Dim PPTObj As Object
Set PPTObj = CreateObject("PowerPoint.application")
Set PowerPointFile = PPTObj.Presentations.Open("C:\test.pptx")
End Sub