下面是我用于重命名文件的代码。它执行SaveAs然后删除原始文件。这需要在不同类型的工作簿上运行:一些扩展名为.xls,另一些扩展名为.xlsx。如果它具有.xls扩展名,我需要强制它以某种方式具有.xlsx扩展名。Excel VBA - 另存为.xlsx扩展名
除了通过在弹出的InputBox的空白末尾手动键入“x”,我该怎么做?
或者也许有不同的解决方案来解决这个问题?我的目标是强制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