Vba Excel中的SaveAs FileFormat参数为';t版本相关
从Excel 2007开始,建议您为Vba Excel中的SaveAs FileFormat参数为';t版本相关,vba,excel,excel-2007,file-format,Vba,Excel,Excel 2007,File Format,从Excel 2007开始,建议您为工作簿.SaveAs命令提供FileFormat参数,因为即使您指定了.xls文件名但没有FileFormat参数,这将使文件损坏,无法在Excel 2003中读取,因为新保存的文件将采用ActiveWorkbook(将是2007)的格式 为了以Excel 2003兼容格式保存,建议使用以下FileFormat值: -4143如果在Excel 2003中,在Excel 2007中为56,那么: If Val(Application.Version) <
工作簿.SaveAs
命令提供FileFormat
参数,因为即使您指定了.xls文件名但没有FileFormat
参数,这将使文件损坏,无法在Excel 2003中读取,因为新保存的文件将采用ActiveWorkbook(将是2007)的格式
为了以Excel 2003兼容格式保存,建议使用以下FileFormat
值:
-4143如果在Excel 2003中,在Excel 2007中为56,那么:
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
如果Val(Application.Version)<12,则
“您使用的是Excel 97-2003
FileExtStr=“.xls”:FileFormatNum=-4143
其他的
'您使用excel 2007或更高版本
FileExtStr=“.xls”:FileFormatNum=56
如果结束
然而,我尝试使用-4143,不管执行的客户机是Excel 2003还是2007,它都工作得很好。有人能证实这是不是真的吗
来源:如果要获取二进制.xls文档,我建议显式使用等于56的值。如果使用Excel 2003保存2003格式的文件,则根本不需要指定文件格式,因为默认情况下还是保存2003格式。问题中的Application.Version代码运行良好,但无需指定文件格式 除非您在2003年使用2007文档转换器,在这种情况下,我不知道2003年将如何使用该卡,但我希望它将选择默认值(56),除非您另行指定 注意:我当然不能像上面建议的那样在2003年指定xlFileFormat.xlExcel8,所以这没有多大帮助