VBA - 从Excel中将Word doc保存为pdf - 未找到命名参数

时间:2014-09-17 11:21:00

标签: excel vba pdf ms-word

我试图让Excel脚本创建文档文件并将其另存为pdf文件。创建文档没有问题,但找到正确的代码将其保存为pdf文件似乎是一个问题。我已经在互联网上搜索了很多手册和相同问题的答案,这些都归结为相同的代码:

ActiveDocument.ExportAsFixedFormat OutputFileName:= _
ActiveDocument.Path & "\" & ActiveDocument.Name & ".pdf", ExportFormat:= _
wdExportFormatPDF, OpenAfterExport:=False, OptimizeFor:= _
wdExportOptimizeForPrint, Range:=wdExportAllDocument, _
Item:=wdExportDocumentContent, IncludeDocProps:=True, KeepIRM:=True, _
CreateBookmarks:=wdExportCreateNoBookmarks, DocStructureTags:=True, _
BitmapMissingFonts:=True, UseISO19005_1:=False

不知何故,似乎没有为我做这个伎俩,因为它给了我错误"未找到命名参数"。这是我的脚本(我已经忽略了不相关的行,我确定路径和文件名存储正确)。

'Dim Word formfield values
Dim objWord As Object
Dim strDocName As String, strDocName1 As String, strDocName2 As String
Dim strMyPath As String

'Declare Word variables
Set objWord = CreateObject("word.application")
objWord.Visible = True

With objWord.activedocument
    'fill in a bunch of formfields

    .ExportAsFixedFormat Type:=xlTypePDF, Filename:=strMyPath & "\" & strDocName2, _
    OpenAfterExport:=False
    .Close
End With

我在这里做错了什么?

2 个答案:

答案 0 :(得分:2)

它不起作用的原因是Excel不知道Word的任何常量值是什么,如wdExportAllDocumentwdExportCreateNoBookmarks

为了使代码有效,您必须在项目中添加引用,方法是单击"工具" ---> "参考..."然后单击" Microsoft Word 14.0对象库"旁边的复选框。然后,您可以使用在问题顶部发布的清理版代码。请记住,ActiveDocument中的全局变量不存在于Excel中,您必须使用objWord.ActiveDocument。此外,对于您的情况,我建议您将代码切换为使用早期绑定(请参阅here以获取差异的描述),以便您具有智能感知功能。这可以防止由拼写错误引起的麻烦错误。

答案 1 :(得分:0)

谢谢Blackhawk!

与此同时,我找到了另一种解决方案。我需要另一个Object(objWordDoc)变量,我用“with objWord.activedocument”代替:

Set objWordDoc = objWord.Documents.Add(strDocToOpen)

With objWordDoc

然而,您的建议将来肯定会派上用场!