Вот код, который я имею для переименования файла. Он делает SaveAs, а затем удаляет оригинал. Это нужно запускать на разных типах книг: у некоторых есть расширение .xls, у других - расширение .xlsx. Если он имеет расширение .xls, мне нужно заставить его иметь расширение .xlsx как-то.Excel VBA - сохранить как с расширением .xlsx
Как это сделать, кроме как вручную ввести «x» в конце пробела в InputBox, когда он появится?
Возможно, есть другое решение этой проблемы? Моя цель - заставить InputBox отображать текущее имя файла с расширением .xlsx независимо от того, что в настоящее время есть.
Sub RenameFile()
Dim myValue As Variant
Dim thisWb As Workbook
Set thisWb = ActiveWorkbook
MyOldName2 = ActiveWorkbook.Name
MyOldName = ActiveWorkbook.FullName
MyNewName = InputBox("Do you want to rename this file?", "File Name", _
ActiveWorkbook.Name)
If MyNewName = vbNullString Then Exit Sub
If MyOldName2 = MyNewName Then Exit Sub
Application.DisplayAlerts = False
ActiveWorkbook.SaveAs Filename:=thisWb.Path & "\" & MyNewName, _
FileFormat:=51
Kill MyOldName
End Sub
«Моя цель - заставить InputBox отображать текущее имя файла с расширением .xlsx независимо от того, что в данный момент есть». Какая странная цель. Вы имеете в виду, что ваша цель состоит в том, чтобы принудительно сохранить файл с расширением '.xlsx' независимо от того, какое расширение оно имеет в настоящее время? – Miqi180
Да. Я знаю, что это всегда будет .xls или .xlsx. Для него будет применено много условного форматирования, поэтому расширение должно быть .xlsx. Я также заставляю FileFormat быть 51, что делает его «современной» книгой Excel. – Robby