2015-09-18 5 views
0

Я нашел этот фрагмент кода онлайн, чтобы преобразовать файлы .xls в файлы .xlsx.Код для преобразования .xls в .xlsx

Sub ProcessFiles() 
Dim Filename, Pathname, SaveFileName As String 
Dim wb As Workbook 

Pathname = "C:\Users\user\Desktop\test\" 
Filename = Dir(Pathname & "*.xls") 
Application.DisplayAlerts = True 

Do While Filename <> "" 
    Set wb = Workbooks.Open(Pathname & Filename) 
    wb.CheckCompatibility = True 
    saveFileName = Replace(Filename, ".xls", ".xlsx") 

    wb.SaveAs Filename:=saveFileName 

    wb.Close SaveChanges:=True 
    Filename = Dir() 
Loop 
Application.DisplayAlerts = True 
End Sub 

При запуске этого он делает создать резервную копию должным образом, но когда речь идет о сохранении файла отображается сообщение, что test.xls уже существует в папке, но я хочу, чтобы спастись, как. xlsx, как видно из функции replace.

Что не так с кодом?

+0

Вместо того, чтобы делать Fi nd/Заменить на пути, работает 'wb.SaveAs имя_файла: = saveFileName, FileFormat: = xlOpenXMLWorkbook'? Или может быть сочетание двух? – Soulfire

+0

@Soulfire Я пробовал и то, и другое только функцию fileformat, но я все равно получаю то же сообщение – Orynuh

ответ

1

Заменить

wb.SaveAs Filename:=saveFileName 

с

wb.SaveAs Filename:=saveFileName, FileFormat:=xlOpenXMLWorkbook 

и заменить

wb.Close SaveChanges:=True 

с

wb.Close SaveChanges:=False 
Смежные вопросы