Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
VBA-从Excel将Word文档另存为pdf-找不到命名参数_Excel_Vba_Pdf_Ms Word - Fatal编程技术网

VBA-从Excel将Word文档另存为pdf-找不到命名参数

VBA-从Excel将Word文档另存为pdf-找不到命名参数,excel,vba,pdf,ms-word,Excel,Vba,Pdf,Ms Word,我试图让Excel脚本创建一个文档文件并将其保存为pdf文件。创建文档没有问题,但是找到正确的代码将其保存为pdf文件似乎是一个问题。我在互联网上搜索过,同一个问题的许多手册和答案都归结为相同的代码: ActiveDocument.ExportAsFixedFormat OutputFileName:= _ ActiveDocument.Path & "\" & ActiveDocument.Name & ".pdf", ExportFormat:= _ wdExport

我试图让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
不知何故,这似乎对我不起作用,因为它给了我一个错误“未找到命名参数”。这是我的脚本(我省略了不相关的行,我确信路径和文件名存储正确)


我做错了什么?

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


为了使代码正常工作,您必须通过单击“工具”-->“引用…”,然后单击“Microsoft Word 14.0对象库”旁边的复选框,在项目中添加一个引用。然后,您可以使用张贴在问题顶部的代码的清理版本。请记住,Excel中不存在像
ActiveDocument
这样的全局变量,您必须使用
objWord.ActiveDocument
。另外,对于您的情况,我建议您将代码切换为使用早期绑定(请参阅以了解差异的描述),这样您将拥有intellisense。这可以防止拼写错误引起的麻烦错误。

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


为了使代码正常工作,您必须通过单击“工具”-->“引用…”,然后单击“Microsoft Word 14.0对象库”旁边的复选框,在项目中添加一个引用。然后,您可以使用张贴在问题顶部的代码的清理版本。请记住,Excel中不存在像
ActiveDocument
这样的全局变量,您必须使用
objWord.ActiveDocument
。另外,对于您的情况,我建议您将代码切换为使用早期绑定(请参阅以了解差异的描述),这样您将拥有intellisense。这可以防止拼写错误引起的麻烦错误。

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


为了使代码正常工作,您必须通过单击“工具”-->“引用…”,然后单击“Microsoft Word 14.0对象库”旁边的复选框,在项目中添加一个引用。然后,您可以使用张贴在问题顶部的代码的清理版本。请记住,Excel中不存在像
ActiveDocument
这样的全局变量,您必须使用
objWord.ActiveDocument
。另外,对于您的情况,我建议您将代码切换为使用早期绑定(请参阅以了解差异的描述),这样您将拥有intellisense。这可以防止拼写错误引起的麻烦错误。

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

为了使代码正常工作,您必须通过单击“工具”-->“引用…”,然后单击“Microsoft Word 14.0对象库”旁边的复选框,在项目中添加一个引用。然后,您可以使用张贴在问题顶部的代码的清理版本。请记住,Excel中不存在像
ActiveDocument
这样的全局变量,您必须使用
objWord.ActiveDocument
。另外,对于您的情况,我建议您将代码切换为使用早期绑定(请参阅以了解差异的描述),这样您将拥有intellisense。这可以防止拼写错误引起的麻烦错误。

谢谢Blackhawk

与此同时,我找到了另一个解决办法。我需要另一个对象(objWordDoc)变量,我已将“With objWord.activedocument”替换为:

不过,你的建议将来一定会派上用场的

谢谢黑鹰

与此同时,我找到了另一个解决办法。我需要另一个对象(objWordDoc)变量,我已将“With objWord.activedocument”替换为:

不过,你的建议将来一定会派上用场的

谢谢黑鹰

与此同时,我找到了另一个解决办法。我需要另一个对象(objWordDoc)变量,我已将“With objWord.activedocument”替换为:

不过,你的建议将来一定会派上用场的

谢谢黑鹰

与此同时,我找到了另一个解决办法。我需要另一个对象(objWordDoc)变量,我已将“With objWord.activedocument”替换为:

不过,你的建议将来一定会派上用场的

'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
Set objWordDoc = objWord.Documents.Add(strDocToOpen)

With objWordDoc