繁体   English   中英

Excel中的SaveAs FileFormat参数不依赖于版本

[英]SaveAs FileFormat argument in Excel isn't version-dependent

从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

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

来源: 在Excel 2007-2010中使用VBA SaveAs

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

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

注意:我当然不能在2003年指定xlFileFormat.xlExcel8,如上所述,所以没有多大帮助。

我建议显式使用xlFileFormat.xlExcel8 ,如果你想获得二进制.xls文件,则等于56。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM