【问题标题】:SaveAs 2003 word document from word 2007 VB.netSaveAs 2003 word 文档来自 word 2007 VB.net
【发布时间】:2011-11-25 16:27:22
【问题描述】:

我的系统有Office2007。我使用 VB.Net 来自动化单词。一切正常。但是当试图以 Word2003 格式(.doc)保存时,它不起作用。但是保存的文档在 Word2007 中是可读的。

Dim WordApp As Microsoft.Office.Interop.Word.Application = New Microsoft.Office.Interop.Word.Application()
Dim MyDoc As Microsoft.Office.Interop.Word.Document

'.....

MyDoc.SaveAs("c:\test.doc")

这会将文件名保存为test.doc。但它不会在 Word2003 中打开。但在 Word2007 中打开完美。

如何保存2003格式的文档?

【问题讨论】:

  • 我认为您需要明确设置文档类型:仅使用文档扩展名是不够的。
  • 谢谢。能告诉我怎么设置吗?
  • 目前无权访问 word。您是否尝试过录制宏并查看生成的代码?
  • 不,我没有。我以前从未使用过宏。所以不知道如何执行。通过在谷歌中进一步搜索,我发现 SaveAs() 的第二个参数可能是解决方案。但我在任何地方都找不到 wdSaveFormat 常量。参考:blogs.office.com/b/microsoft-excel/archive/2009/07/07/…
  • 在word中按alt+F11打开vb编辑器。然后按 F2 打开对象浏览器。您可以搜索 wdSaveFormat 并找到您需要的值。

标签: vb.net vba automation ms-word


【解决方案1】:

来自2010年记录的宏:

ActiveDocument.SaveAs2 FileName:="abc.doc", FileFormat:=wdFormatDocument

另请参阅http://msdn.microsoft.com/en-us/library/bb238158(v=office.12).aspx,它将 wdFormatDocument 的值设为 0。

【讨论】:

  • 谢谢。当我检查 MSDN(以前)时,显示了一个显示常量(无值)的页面。此页面包含常量名称及其对应的值。那么如果我想以默认的 Word2007 格式保存文档呢?避免可选的第二个参数?
  • 2007 年和 2010 年有不止一种格式,所以这里有一些注释:rondebruin.nl/saveas.htm - Excel,但相关,support.microsoft.com/kb/2445060。如果我有时间,我可能会回到这个,或者你可以在其他地方找到信息。请注意,录制宏真的很有帮助。
  • 我已尝试将文档保存为 FileFormat number:0 。但是当我尝试右键单击它并选择属性-->摘要-->高级时,它显示“Normal.dotm”作为模板。那是问题吗 ? Word2003 文档只有“普通”作为模板。 “dotm”似乎适用于 Office2007。
  • @Vpp Man 我还没有测试过,但我很确定它会从打开它的任何 PC 中获取正常模板。
  • 您能告诉我实现这一目标的最佳解决方案吗?对于这个特定的问题,我现在已经浪费了大约 2 天。 :( 0 值也根本不起作用。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-12-26
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多