Aquí es una rutina que se va a convertir todos los archivos de un solo directorio que tiene una extensión .xls.
Se necesita un enfoque directo. Se elimina cualquier código de VBA en un libro de trabajo, el libro de trabajo no se guarda con una extensión .xlsm. Las advertencias de incompatibilidad no se desvían, sino que los cambios se aceptan automáticamente.
Sub Convert_xls_Files()
Dim strFile As String
Dim strPath As String
With Application
.EnableEvents = False
.DisplayAlerts = False
.ScreenUpdating = False
End With
'Turn off events, alerts & screen updating
strPath = "C:\temp\excel\"
strFile = Dir(strPath & "*.xls")
'Change the path as required
Do While strFile <> ""
Workbooks.Open (strPath & strFile)
strFile = Mid(strFile, 1, Len(strFile) - 4) & ".xlsx"
ActiveWorkbook.SaveAs Filename:=strPath & strFile, FileFormat:=xlOpenXMLWorkbook
ActiveWorkbook.Close True
strFile = Dir
Loop
'Opens the Workbook, set the file name, save in new format and close workbook
With Application
.EnableEvents = True
.DisplayAlerts = True
.ScreenUpdating = True
End With
'Turn on events, alerts & screen updating
End Sub
Gracias Robert, funcionó muy bien. Lo único que cambié fue FileFormat: = XlFileFormat.xlXMLSpreadsheet (estoy usando Excel 2003) – kristof
¿Se puede escribir el código anterior en php? – chupinette