繁体   English   中英

VBA-Excel-另存为并删除原始工作簿

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM