Откройте файлы Excel 2007 Excel и сохраните их в формате VBA 97-2003 - PullRequest
4 голосов
/ 27 января 2010

У меня странная ситуация, когда у меня есть набор файлов Excel, все с расширением .xls., В каталоге, где я могу прекрасно открыть все из них в Excel 2007. Странно то, что я не могу открыть их в Excel 2003, на том же компьютере, не открывая файл сначала в 2007 году и не сохраняя его как «книгу Excel 97-2003». Прежде чем сохранить файл как «Excel 97-2003 Workbook» из Excel 2007, при открытии файлов Excel в 2003 году я получаю сообщение об ошибке, что файл не имеет распознаваемого формата.

Итак, мой вопрос: если у меня уже был файл Excel, открытый в 2007 году, и у меня уже есть имя файла открытого файла, хранящегося в переменной, программно, как я могу имитировать действие перехода к «кнопке офиса» в правом верхнем углу и выберите «Сохранить как», а затем выберите «Excel 97-2003 Workbook»? Я пробовал что-то вроде ниже, но это не сохраняет файл вообще:

ActiveWorkbook.SaveAs TempFilePath & TempFileName & ".xls", FileFormat:=56

Спасибо за любую помощь или руководство!

Ответы [ 6 ]

7 голосов
/ 27 января 2010

Похоже, вы должны попробовать пакет совместимости, но я не понимаю, почему ваш VBA не работает. Я попробовал ниже, и это сработало отлично:

ThisWorkbook.SaveAs "C:\test" & ".xls", FileFormat:=56
1 голос
/ 26 апреля 2012

Вот решение, которое работает для меня. По сути, он снова открывает тот же файл и имитирует кнопку «Сохранить как» из Office с совместимостью Excel 97-2003. Тем не менее, он скрывает любые предупреждения и указывает Excel, чтобы НЕ проверять совместимость, которая генерирует всплывающее окно, мешающее вам работать в пакетном режиме без вывода сообщений.

'before that, my code was using Workbooks.Add method, saving and then closing.
'just add the following after your last operation, once your file is closed where
'of course "resultFile" is the workbook to be saved, and resultFileName the path

Application.DisplayAlerts = False
Set resultFile = Workbooks.Open(resultFileName)
resultFile.CheckCompatibility = False
resultFile.SaveAs Filename:=resultFileName, FileFormat:=xlExcel8
resultFile.Close
Application.DisplayAlerts = True
1 голос
/ 27 января 2010

Эта страница: http://www.rondebruin.nl/saveas.htm была полезна для меня. Вы должны объявить другой тип файла, если сохраняете файлы с 2007 по 2003 и более ранние версии.

0 голосов
/ 06 января 2016
'this script is created by me. But usable to vbscript ( vbs ).
UTILIZAR EL ARCHIVO INICIAL.XLSX COMO COMODÍN PARA CREAR UN ARCHIVO DATOS.XLS.

'Creado por Juan Fernando Arango Trujillo
Set app = CreateObject("Excel.Application")
app.Visible = False
app.DisplayAlerts = False
Set fso = CreateObject("Scripting.FileSystemObject")
Set wb = app.Workbooks.Open("C:\Users\Juan\Documents\Inicial.xlsx") 
wb.SaveAs "C:\Users\Juan\Documents\Datos.xls",  -4143
wb.Close True
app.Quit
Set app = Nothing
Set fso = Nothing

'FIN DEL PROCESO DE CREACIÓN DE DATOS.XLS

0 голосов
/ 20 июня 2013

просто закрытие оповещений тоже работает. Application.DisplayAlerts = False Workbooks.Add.SaveAs name, FileFormat: = 56 * при необходимости внесите изменения в файл Activeworkbook.close SaveChanges: = true Application.DisplayAlerts = True

0 голосов
/ 27 января 2010

Мне неясно, пытаетесь ли вы просто преобразовать все эти файлы или работаете над приложением, которое должно это сделать.

Если первое, посмотрите, полезно ли это: http://www.microsoft.com/downloads/details.aspx?familyid=941b3470-3ae9-4aee-8f43-c6bb74cd1466&displaylang=en

Позволяет открывать Office 2007 в более ранних версиях Office.

...