#excel #vba #fso
#excel #vba
Вопрос:
Я хочу сохранить текущий файл xlsm как xlsx, поэтому я написал код, как показано ниже. Этот код действительно выполнил свою работу, и я смог увидеть файл, сохраненный как Myfile.xlsx как то, что я определил в коде, однако есть некоторые небольшие проблемы, когда vba всегда сохраняет файл в другой файл как bookx.xlsx рядом с Myfile.xlsx . Как я могу этого избежать?
Sub saveAsXlsx()
Dim myPath As String
myPath = Application.ActiveWorkbook.Path
Worksheets(Array("sheet1", "sheet2")).Copy
ActiveWorkbook.SaveCopyAs Filename:=myPath amp; "Myfile.xlsx"
End Sub
Комментарии:
1. Он не создает другой файл, он просто открывает новую книгу с этим именем (BookX.xlsx ). Вам просто нужно закрыть это окно после вашего скрипта.
2. как я могу закрыть это окно ?
3. Activeworkbook. Закрыть False
Ответ №1:
Это позволит избежать дополнительной копии:
Sub saveAsXlsx()
Dim myPath As String
myPath = Application.ActiveWorkbook.Path
Worksheets(Array("sheet1", "sheet2")).Copy
ActiveWorkbook.SaveAs Filename:=myPath amp; "Myfile.xlsx"
ActiveWorkbook.Close
End Sub
При этом используются SaveAs, а не SaveCopyAs, поскольку вы уже создали первую копию.