VBA excel – 如何在不保存第一个文件的情况下“保存”文件
我有一个名为sth_A的工作簿,其中A是以dd-mm-yyyy格式显示今天的date。 几乎每天我都打开这个工作簿并进行更改,然后使用今天的date( A )更新文件的名称。
所以我创build了一个Workbook_BeforeClose
事件,并打算在其中编写一些代码,每次closures文件时都会自动重命名我的文件。 我使用Workbook.SaveAs
方法,但是这也保留了旧文件。
有没有办法重新命名一个打开的文件,或保存,而不保留原来的,或另一个aproach会做我想要的一个优雅的方式?
码:
Private Sub Workbook_BeforeClose(Cancel As Boolean) ThisWorkbook.SaveAs "sth" & Format(Date, "dd-mm-yyyy") & ".xlsm", FileFormat:=52, CreateBackup:=False End Sub
也:
Private Sub Workbook_BeforeClose(Cancel As Boolean) ThisWorkbook.SaveAs ThisWorkbook.path & "/sth" & Format(Date, "dd-mm-yyyy") & ".xlsm", FileFormat:=52, CreateBackup:=False End Sub
PS我想在任何情况下删除/ overwriten第一个文件。 不仅如果它与新的名称相同。
保存你的工作簿,并Kill
旧的(基本上是@Canute说的)。
Private Sub Workbook_BeforeClose(Cancel As Boolean) Dim sOldName As String sOldName = ThisWorkbook.FullName ThisWorkbook.SaveAs ThisWorkbook.Path & Application.PathSeparator & _ "sth" & Format(Date, "dd-mm-yyyy") & ".xlsm", FileFormat:=52, CreateBackup:=False Kill sOldName End Sub
如果您想在closures工作簿事件中执行此操作,
- 首先,将打开的工作簿全名保存在一个variables中(比如oldWorkbook)
- 在打开的工作簿上进行保存并添加date时间戳(这是您的新工作簿)
- 删除您以前在variablesoldWorkbook中存储path的工作簿。
希望这可以帮助。
添加禁用警报。
Private Sub Workbook_BeforeClose(Cancel As Boolean) Application.DisplayAlerts = False ThisWorkbook.SaveAs "sth" & Format(Date, "dd-mm-yyyy") & ".xlsm" End Sub