SaveAs FileFormat argument dans Excel n'est pas dépendant de la version
De départ dans Excel 2007, il vous est recommandé de fournir un FileFormat
argument de la Workbook.SaveAs
commande parce que même si vous avez spécifié un .xls nom de fichier, mais sans FileFormat
argument, il fera le fichier corrompu et incapable de lire dans Excel 2003, car le nouveau fichier enregistré prendra le format de la ActiveWorkbook (ce qui serait 2007).
Afin d'enregistrer dans Excel 2003 format compatible, il est suggéré d'utiliser ces FileFormat
valeurs:
-4143 si dans Excel 2003 et 56 dans Excel 2007 de la manière suivante:
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
Cependant j'ai essayé d'utiliser -4143, peu importe si le client de l'exécution de est Excel 2003 ou 2007 et il a bien fonctionné. Quelqu'un peut confirmer si c'est le cas?
Source: L'utilisation de VBA SaveAs dans Excel 2007-2010
OriginalL'auteur NeedHelp | 2010-11-18
Vous devez vous connecter pour publier un commentaire.
Si vous utilisez Excel 2003 pour enregistrer un 2003 format de fichier, alors il n'y a pas besoin de spécifier le format de fichier, puisque le défaut serait d'enregistrer 2003 format de toute façon. L'Application.Version du code en question fonctionne très bien-mais pas besoin de préciser le FileFormat.
Sauf si vous utilisez le document 2007 convertisseurs en 2003, dans ce cas, je ne sais pas combien de 2003 serait jouer cette carte, mais je vais choisir la valeur par défaut (56), à moins d'indication contraire.
NB: je ne peux certainement pas spécifier xlFileFormat.xlExcel8 en 2003, comme suggéré ci-dessus, ce qui n'est pas beaucoup d'aide.
OriginalL'auteur baldmosher
Je vous suggère de manière explicite à l'aide
xlFileFormat.xlExcel8
qui est égal à 56 si vous voulez obtenir un binaire .xls document.OriginalL'auteur Dirk Vollmar