Страницы: 1
RSS
Сохранить в ёкселе 2007 как ".xls"
 
коллеги, подскажите, плиз.  
КАК?  
предыстория  
дано, кусок кода, который задает формат файла в зависимости от версии Ёкселя.  
 
If Val(Application.Version) < 12 Then  
       'You use Excel 2000-2003  
       FileExtStr = ".xls": FileFormatNum = -4143  
   Else  
       'You use Excel 2007  
       FileExtStr = ".xlsx": FileFormatNum = 51  
   End If  
 
 
что надо сюда воткнуть, чтобы ёксель 2007 сохранял файл в формате xls?  
 
если убрать всю эту ветку (if) и оставить толькло  
FileExtStr = ".xls": FileFormatNum = -4143  
 
то 2007-ой ругается.  
 
значит надо делить на версии.  
если записать макрос в 2007-ом, то видим следующее:  
FileFormat:= _ xlExcel8  
 
а тоже самое, но в 2003-ем выглядит так:  
FileFormat:= _  xlNormal  
 
 
видимо надо каким-то образом эту строчку изменить, но как?  
FileExtStr = ".xlsx": FileFormatNum = 51
 
Нет под рукой 2007, но может попробывать записать процесс сохранения макроредактором и посмотреть результат?
 
я это уже делал, о чем чуток выше и сказано ;-)
 
посмотрел по справке XlFileFormat, параметру xlExcel8 соответсвует значение 56
 
видимо придется с утра заниматься пальпацией :-)  
варианты:  
FileExtStr = ".xlsx": FileFormatNum = 56  
 
FileExtStr = ".xls": FileFormatNum = 56  
 
 
либо еще какие...  
 
ЗЫ: неее, Павел, надо таки мне книжку покупать... а то как слепой котенок тыкаюсь.
 
Прочитал много книжек по Excel, но это, вроде, ни в одной не встречалось)
 
{quote}{login=mazayZR}{date=21.04.2008 05:15}{thema=Сохранить в ёкселе 2007 как ".xls"}{post}коллеги, если записать макрос в 2007-ом, то видим следующее:  
FileFormat:= _ xlExcel8  
 
а тоже самое, но в 2003-ем выглядит так:  
FileFormat:= _  xlNormal  
 
 
{/post}{/quote}  
 
ну и кто мешает написать так и так в зависимости от    
if version..
 
итог:  
 
для того, чтобы этот макрос сохранял в формате ".xls" независимо от версий (2003-ий или 2007-ой)  
надо включить в него следующее:  
 
If Val(Application.Version) < 12 Then  
       'You use Excel 2000-2003  
       FileExtStr = ".xls": FileFormatNum = -4143  
   Else  
       'You use Excel 2007  
       FileExtStr = ".xls": FileFormatNum = 56  
   End If  
 
отдельное спасибо Артему
 
...просто в тему  
для Екселя 2003 FileFormat = xlExcel9795; это совместимость с 95-97 офисом.  
               FileFormat = xlNormal; это сохранение по умолчанию, т.е. для 2003 оффиса - это *.xls  
дял Екселя 2007 FileFormat = xlExcel8; это совместимость с предыдущей версией, т.е. с 2003, а моежт и ниже.  
               FileFormat = xlOpenXMLWorkbook; это сохранение по умолчанию, т.е. для 2007 оффиса - это *.xlsx
Страницы: 1
Читают тему
Наверх