2010-01-26 81 views
4

我有一个奇怪的情况,我有一组excel文件,所有的扩展名为.xls。,在一个目录中我可以打开所有这些文件在Excel 2007中罚款。奇怪的是,我不能在同一台机器上的Excel 2003中打开它们,而无需在2007年首先打开文件,并将该文件保存为“Excel 97-2003工作簿”。在将文件保存为Excel 2007中的“Excel 97-2003工作簿”之前,当我在2003年打开Excel文件时,出现文件不是以可识别的格式显示的错误。打开excel 2007 excel文件并保存为VBA中的97-2003格式

所以我的问题是:如果我已经有在2007年打开的Excel文件,我已经有打开的文件存储在一个变量的文件名,编程方式我怎样才能模仿动作去“办公室按钮“在右上角并选择”另存为“,然后选择”Excel 97-2003 Workbook“?我试过类似下面的东西,但它根本不保存文件:

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

感谢您的任何帮助或指导!

+0

我完全有同样的问题。一个my_file_with_macro.xlsm文件生成一些* .xls文件与2003 excel兼容,这些文件无法由仍在Office 2003下运行的同事打开。自从您在此处询问此问题后,您是否得到过任何解决方案? – 2012-04-26 09:16:55

+0

其实,我刚刚找到了一个解决方案(我并不是很清楚,但是......无论如何,它都适合我)。 Application.DisplayAlerts =假 设置resultFile = Workbooks.Open(resultFileName) resultFile.CheckCompatibility =假 resultFile.SaveAs文件名:= resultFileName,的FileFormat:= xlExcel8 resultFile.Close Application.DisplayAlerts =真 – 2012-04-26 09:35:36

回答

0

我不清楚你是否只是想转换所有这些文件,或者如果你正在开发一个需要这样做的应用程序。

如果是前者,看看这是有帮助的:http://www.microsoft.com/downloads/details.aspx?familyid=941b3470-3ae9-4aee-8f43-c6bb74cd1466&displaylang=en

它可以让你在早期版本的Office中打开Office 2007。

+0

别问我为什么但兼容包不起作用。我正在尝试创建一个应用程序来转换文件。 – ABB 2010-01-26 22:25:08

7

这听起来像你应该尝试兼容包,但我看不出为什么你的vba不工作。我试了下面,它工作完美:

ThisWorkbook.SaveAs "C:\test" & ".xls", FileFormat:=56 
+0

我已经安装了兼容包,但它仍然无法正常工作。不知道为什么。如果我取出FileFormat:= 56,它可以很好地保存,但是当我添加它时根本不会保存。有任何想法吗? – ABB 2010-01-26 22:26:43

+0

如果您尝试在另一个文件名下“另存为”,会发生什么情况? – Jay 2010-01-26 22:35:01

+0

我刚刚尝试过,并没有奏效。我仔细检查了代码,确定它已经达到了这一行代码,并且确实如此,我不确定它是否与我的机器上的当前设置有关。我很茫然。 – ABB 2010-01-26 22:42:14

1

这是一个为我工作的解决方案。基本上,它再次打开相同的文件,并使用Excel 97-2003的兼容性模拟Office按钮中的“另存为”。但是,它确实隐藏了所有警报,并指定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 
0

刚刚关闭警报也起作用。 Application.DisplayAlerts =假 Workbooks.Add.SaveAs名的FileFormat:= 56 *做修改,如果必要的话 Activeworkbook.close的SaveChanges文件:=真 Application.DisplayAlerts =真

0
'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 DECREACIÓNDE DATOS.XLS

+0

如果你能翻译apish并添加一些解释,那就太好了。 – CAFEBABE 2016-01-06 14:02:01

相关问题