Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vba Excel中的SaveAs FileFormat参数为';t版本相关_Vba_Excel_Excel 2007_File Format - Fatal编程技术网

Vba Excel中的SaveAs FileFormat参数为';t版本相关

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) <

从Excel 2007开始,建议您为
工作簿.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,所以这没有多大帮助