[英]Excel 2007 VBA to save open workbook as backup without changing original
[英]VBA - Excel - Save As and delete original workbook
从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
您需要在路径之后和文件名之前包含一个\\
。
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
编辑:更新了答案以包括来自评论的修复。
因此,我有一些代码用于自动保存文件(到代码中指定的目录),然后从该文件夹中删除特定的文件类型。 (我用它来保存.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代码中
请注意,当前将文件保存为名称为“ Testing”且名称位于当前系统日期的前一天,例如“ Testing 30.10.16”。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.