我知道这个问题可能是被问到“x1000时代”的,但在过去的3个小时里,我一直在努力通过excel vba将pptx隐藏到pdf中(这是我的报告生成器所必需的,为了保持布局整洁,我决定使用PowerPoint,因为word总是会把事情搞砸)。
下面是我使用的代码:
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用于获取以下变量数据:
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时,它工作得很好。
如果有人能帮我解决这个问题,我会非常感激的。
发布于 2015-02-27 15:28:49
我能重现你的错误。下面的解决方案对我有效。确保启用了对对象库的引用。
WDReport.SaveAs FileName2, ppSaveAsPDFhttps://stackoverflow.com/questions/28756140
复制相似问题