【问题标题】:VBA: Word saves .docx file as a .doc file, how to save as a docx?VBA:Word将.docx文件保存为.doc文件,如何保存为docx?
【发布时间】:2018-07-17 19:03:51
【问题描述】:

在 Excel 中,我有一些可以完美运行的宏。我对这些宏所做的是打开一个 Word 文档 (.docx),用 Excel 文件中的数据填充书签,将带有文件名中一些数据的单独 Word 文档保存在指定的文件夹中。没什么大不了的(不再)。

问题是输入文件是 .docx 文件。输出文件为 .doc(与 Word 97-2003 兼容)。

如何将输出文档保存为 .docx 文件? 我的 VBA 中负责保存的部分是这样的:

wordApp.DisplayAlerts = False
    WordDoc.SaveAs Filename:=ThisWorkbook.Path & "GoNoGo\GoNoGo BOL " & strVoornaam & Space(1) & strAchternaam, FileFormat:=wdFormatDocument
    WordDoc.Close
    wordApp.Quit
    Set WordDoc = Nothing
    Set wordApp = Nothing

【问题讨论】:

  • msdn.microsoft.com/en-us/vba/word-vba/articles/… 你在使用后期绑定吗?如果是,则需要定义文件格式常量
  • 废话,我错过了。非常感谢。现在已经解决了。我不知道后期绑定与否。这是我的第一个 VBA 项目,在互联网上得到了很多人的帮助。
  • 如果您引用 Word 对象模型/类型库,则定义了 Word 常量,您应该使用 Word 对象模型中定义的类型声明 Word 对象。如果您引用 Word 类型库,则未定义 Word 常量,您应该使用它们的底层值,并且您需要后期绑定对象类型,即声明它们As Object,这使 VBA 在运行时解析实际类型(因此,late 绑定,vs compile-time / early 绑定)。

标签: excel vba ms-word docx doc


【解决方案1】:

有了这个:

FileFormat:=wdFormatDocument

您告诉 VBA 保存为 .doc。

应该是:

FileFormat:=wdFormatDocumentDefault

在此处查看可能的文件格式:

https://msdn.microsoft.com/de-de/vba/word-vba/articles/wdsaveformat-enumeration-word

【讨论】:

  • 这是不正确的。默认格式不一定是 docx。这是安装默认值,但可以由用户或网络管理员更改。
  • 不正确,但不准确。这应该正常工作,我确实提供了所有选项的链接。
  • 我将其更改为 FileFormat:=wdFormatDocumentDefault,在阅读了上面@Tim Williams 给出的链接之后,Franksta 给出了相同的链接。在那里,您可以阅读使用 VBA 创建的文档的最终扩展名。对我来说, FileFormat:=wdFormatDocumentDefault 可以,它创建了很好的 .docx 文件,没有进一步的兼容性问题。
  • 很高兴听到它有效。然后您会将问题标记为已回答吗?
猜你喜欢
  • 2012-08-16
  • 2014-03-17
  • 1970-01-01
  • 2021-05-25
  • 2015-08-09
  • 1970-01-01
  • 1970-01-01
  • 2012-05-11
  • 2011-06-14
相关资源
最近更新 更多