Я бы порекомендовал использовать макрос для обработки файлов в папке, чтобы конвертировать их из xls в xlsx. В этом коде предполагается, что все файлы находятся в одной папке и что все xls-файлы необходимо преобразовать, но если вы хотите выбрать отдельные файлы, этот код можно обновить.
Этот код должен быть запущен из книги Excel 2007 или Excel 2010.
Option Explicit
' Convert all xls files in selected folder to xlsx
Sub convertXLStoXLSX()
Dim FSO As Scripting.FileSystemObject
Dim strConversionPath As String
Dim fFile As File
Dim fFolder As Folder
Dim wkbConvert As Workbook
' Open dialog and select folder
With Application.FileDialog(msoFileDialogFolderPicker)
.AllowMultiSelect = False
.Show
strConversionPath = .SelectedItems(1)
End With
Set FSO = New Scripting.FileSystemObject
' Check if the folder exists
If FSO.FolderExists(strConversionPath) Then
Set fFolder = FSO.GetFolder(strConversionPath)
' Loop through files, find the .xls files
For Each fFile In fFolder.Files
If Right(fFile.Name, 4) = ".xls" Or Right(fFile.Name, 4) = ".XLS" Then
Application.DisplayAlerts = False
Set wkbConvert = Workbooks.Open(fFile.Path)
' Save as XML workbook - if file contains macros change FileFormat:=52
wkbConvert.SaveAs FSO.BuildPath(fFile.ParentFolder, Left(fFile.Name, Len(fFile.Name) - 4)) & ".xlsx", FileFormat:=51
wkbConvert.Close SaveChanges:=False
' Delete original file
fFile.Delete Force:=True
Application.DisplayAlerts = True
End If
Next fFile
End If
End Sub
Если файлы, которые вы конвертируете, содержат макросы, вам нужно обновить FileFormat:= 51, чтобы прочитать FileFormat:= 52. Или, если вам не нужен макрос-код в преобразованных файлах, вы можете оставить его в покое, и он удалит макросы при преобразовании его в формат xlsx.