【问题标题】:SaveAs FileFormat argument in Excel isn't version-dependentExcel 中的 SaveAs FileFormat 参数不依赖于版本
【发布时间】:2010-11-18 01:42:37
【问题描述】:

从 Excel 2007 开始,建议您为 Workbook.SaveAs 命令提供 FileFormat 参数,因为即使您指定了 .xls 文件名但没有 FileFormat 参数,它也会使文件损坏并且无法可以在 Excel 2003 中读取,因为新保存的文件将采用 ActiveWorkbook 的格式(即 2007)。

为了以 Excel 2003 兼容格式保存,建议使用以下FileFormat 值: -4143 如果在 Excel 2003 中和 56 在 Excel 2007 中是这样:

If Val(Application.Version) < 12 Then
  ' You use Excel 97-2003
  FileExtStr = ".xls": FileFormatNum = -4143
Else
  ' you use excel 2007 or later
  FileExtStr = ".xls": FileFormatNum = 56
End If

但是,无论执行客户端是 Excel 2003 还是 2007,我都尝试使用 -4143 并且运行良好。任何人都可以确认是否是这种情况?

来源:Use VBA SaveAs in Excel 2007-2010

【问题讨论】:

    标签: vba excel excel-2007 file-format


    【解决方案1】:

    如果您使用 Excel 2003 来保存 2003 格式的文件,则根本不需要指定文件格式,因为默认情况下无论如何都会保存 2003 格式。问题中的 Application.Version 代码工作正常 - 但无需指定 FileFormat。

    除非您在 2003 年使用 2007 文档转换器,在这种情况下,我不知道 2003 会如何使用该卡,但我希望它会选择默认值 (56),除非您另有说明。

    注意:我当然不能在 2003 年指定 xlFileFormat.xlExcel8,就像上面建议的那样,所以这没什么帮助。

    【讨论】:

      【解决方案2】:

      如果您想获取二进制 .xls 文档,我建议明确使用等于 56 的 xlFileFormat.xlExcel8

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2019-12-25
        • 2016-09-18
        • 1970-01-01
        • 2021-05-14
        • 2023-03-26
        • 2014-08-18
        • 2013-03-08
        相关资源
        最近更新 更多