Word VBA SaveAs 错误:文件类型和文件扩展名不兼容

Posted

技术标签:

【中文标题】Word VBA SaveAs 错误:文件类型和文件扩展名不兼容【英文标题】:Word VBA SaveAs error: incompatible file type and file extension 【发布时间】:2016-08-26 12:48:28 【问题描述】:

我正在尝试在 Word 2016 中使用以下代码另存为:

Dim doc As Word.Document
Dim fpFile as string

Set doc = ActiveDocument
fpFile = doc.Path & "\" & doc.Name

doc.SaveAs Filename:=Left(fpFile, Len(fpFile) - 4) & "docx", FileFormat:=wdFormatDocument 

我使用 Left 和 Len 函数的 Filename 参数计算结果为:

C:\Users\My Name\Documents\My Company\My Client\test 文件夹\HeaderTemplate.docx

这对我来说看起来不错,但我收到错误 6294:SaveAs 行上的“文件类型和文件扩展名不兼容”。

我首先尝试将 Filename 放入一个字符串变量,然后我尝试了 SaveAs2 方法,两者的结果相同。我确实想保存为标准的非启用宏的 docx 文件。

有什么想法吗?

谢谢。

【问题讨论】:

试试FileFormat:=wdFormatDocumentDefault 是的,成功了,非常感谢 【参考方案1】:

wdFormatDocument.doc

wdFormatXMLDocument.docx

From MSDN(适用于 Office 2007):

Name                         Value Description
wdFormatDocument                 0 Microsoft Office Word format.
wdFormatDOSText                  4 Microsoft DOS text format.
wdFormatDOSTextLineBreaks        5 Microsoft DOS text with line breaks preserved.
wdFormatEncodedText              7 Encoded text format.
wdFormatFilteredhtml            10 Filtered HTML format.
wdFormatHTML                     8  Standard HTML format.
wdFormatRTF                      6 Rich text format (RTF).
wdFormatTemplate                 1 Word template format.
wdFormatText                     2 Microsoft Windows text format.
wdFormatTextLineBreaks           3 Windows text format with line breaks preserved.
wdFormatUnicodeText              7 Unicode text format.
wdFormatWebArchive               9 Web archive format.
wdFormatXML                     11 Extensible Markup Language (XML) format.
wdFormatDocument97               0 Microsoft Word 97 document format.
wdFormatDocumentDefault         16 Word default document file format. For Microsoft Office Word 2007, this is the DOCX format.
wdFormatPDF                     17 PDF format.
wdFormatTemplate97               1 Word 97 template format.
wdFormatXMLDocument             12 XML document format.
wdFormatXMLDocumentMacroEnabled 13 XML document format with macros enabled.
wdFormatXMLTemplate             14 XML template format.
wdFormatXMLTemplateMacroEnabled 15 XML template format with macros enabled.
wdFormatXPS                     18 XPS format.

【讨论】:

我认为您可以为 wdFormatDocumentDefault 作为 .docx 的正确类型提出一个很好的论据,尤其是从做出面向未来的选择的角度来看。

以上是关于Word VBA SaveAs 错误:文件类型和文件扩展名不兼容的主要内容,如果未能解决你的问题,请参考以下文章

VBA ActiveWorkbook.Saveas 运行时错误 1004

宏 VBA,无法让“SaveAs”发挥作用

Excel 2007 VBA ActiveWorkbook SaveAs 未保存...运行时错误 1004

Word Automation 中的 SaveAs 给我一个“这不是一个有效的文件名”错误

尝试使用 .SaveAs VBA 函数时出现方法错误

使用 VBA 密码保护进行保存时出现错误消息“运行时错误‘1004’:对象‘_Workbook’的方法‘SaveAs’失败”