Начиная с 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, и он работал нормально.Кто-нибудь может подтвердить, что это так?
Источник: Использование VBA SaveAs в Excel 2007-2010