从Excel 2007开始,建议您为FileFormat
命令提供Workbook.SaveAs
参数,因为即使您指定了.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,并且它运行正常。任何人都可以确认是否是这种情况吗?
答案 0 :(得分:1)
如果您使用Excel 2003保存2003格式文件,则根本不需要指定文件格式,因为默认情况下无论如何都要保存2003格式。问题中的Application.Version代码工作正常 - 但不需要指定FileFormat。
除非您在2003年使用2007年的文档转换器,否则我不知道2003年该如何使用该卡,但我希望它会选择默认值(56),除非您另有说明。
注意:如上所述,我当然不能在2003年指定xlFileFormat.xlExcel8,因此没什么帮助。
答案 1 :(得分:0)
如果你想获得二进制.xls文档,我建议明确使用等于56的xlFileFormat.xlExcel8
。