首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Excel宏将pptx保存为pdf;代码出错

Excel宏将pptx保存为pdf;代码出错
EN

Stack Overflow用户
提问于 2015-02-27 01:44:53
回答 1查看 3.6K关注 0票数 1

我知道这个问题可能是被问到“x1000时代”的,但在过去的3个小时里,我一直在努力通过excel vba将pptx隐藏到pdf中(这是我的报告生成器所必需的,为了保持布局整洁,我决定使用PowerPoint,因为word总是会把事情搞砸)。

下面是我使用的代码:

代码语言:javascript
复制
Dim ppt As Object
On Error Resume Next

Set ppt = GetObject(, "PowerPoint.Application")
If ppt Is Nothing Then
Set ppt = CreateObject("PowerPoint.Application")
End If
On Error GoTo 0

Set WDReport = ppt.Presentations.Open("C:\Users\User1\Documents\Folder\Final Report Template.pptx")

WDReport.UpdateLinks

Dim FileName2 As String
FileName2 = "C:\Users\User1\Documents\Folder\Complete Report\" & Sheet14.Range("Q3").Text & " No " & Sheet14.Range("U21") & " Report" & Sheet17.Range("E10").Text & ".pdf"

WDReport.ExportAsFixedFormat FileName2, ppFixedFormatTypePDF, ppFixedFormatIntentScreen

WDReport.Close
ppt.Quit

Set ppt = Nothing
Set WDReport = Nothing 

但是我一直在WDReport.ExportAsFixedFormat FileName2, ppFixedFormatTypePDF, ppFixedFormatIntentScreen行上收到一条错误消息"13类型不匹配“。我试图用WDReport替换ActivePresentation,但是收到并错误了"429 ActiveX组件Create“。

我已经包含了所有必需的库(微软PowerPoint对象库15.0,与MS相同),但到目前为止没有任何效果。

UPD:

为了澄清FileName2字符串,Range用于获取以下变量数据:

代码语言:javascript
复制
Range("Q3") is Name (e.g. Test Company)
Range("U21") is Number (e.g. 1234567891011)
Range("E10") is Date (e.g. Feb-15)

因此,最终文件名将类似于“测试公司编号1234567891011 Report2b-15.pdf”。再一次,当我将.docx转换成pdf时,它工作得很好。

如果有人能帮我解决这个问题,我会非常感激的。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-02-27 15:28:49

我能重现你的错误。下面的解决方案对我有效。确保启用了对对象库的引用。

代码语言:javascript
复制
WDReport.SaveAs FileName2, ppSaveAsPDF
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28756140

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档