从Personal.xlsb文件,我希望VBA将当前活动工作簿保存为同一目录中的用户可定义名称,并删除原始工作簿。
以下是我的代码。它有两个问题。一,它出于某种原因将工作簿保存在“我的文档”文件夹中。活动工作簿不在“我的文档”中。它位于完全不同的驱动器中的文件夹中。二,它会抛出一个"文件未找到"错误。
Sub RenameFile()
Dim thisWb As Workbook
Set thisWb = ActiveWorkbook
MyOldName = ActiveWorkbook.Name
MyNewName = InputBox("What do you want to rename the file as?", "Rename", ActiveWorkbook.Name)
ActiveWorkbook.SaveAs Filename:=thisWb.Path & MyNewName
Kill MyOldName
End Sub
答案 0 :(得分:2)
您需要在路径之后和文件名之前添加\
。
Sub RenameFile()
Dim thisWb As Workbook
Set thisWb = ActiveWorkbook
MyOldName = ActiveWorkbook.FullName
MyNewName = InputBox("What do you want to rename the file as?", "Rename", ActiveWorkbook.Name)
ActiveWorkbook.SaveAs Filename:=thisWb.Path & "\" & MyNewName
Kill MyOldName
End Sub
编辑:更新了答案以包含评论修复。
答案 1 :(得分:0)
所以我有一些代码用于自动保存文件(到代码中指定的目录),然后从所述文件夹中删除特定的文件类型。 (我用它来保存.xlsx并删除.csv)
'Saves file to specified location
ActiveWorkbook.SaveAs filename:="C:\Desktop\Testing\Testing File " _
& Format(Now() - 1, "DD.MM.YY") & ".xlsx" _
, FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False
On Error Resume Next
Kill "C:\Desktop\Testing*.csv*"
On Error GoTo 0
这是我在较长的VBA模块中使用的代码,但您可以将其合并到现有的VBA代码中
请注意,目前将文件保存为名称中当前系统日期前一天的测试,例如"测试30.10.16"