[英]VBA excel - How to 'saveas' file without preserving the first file
我有一本名為sth_A的工作簿,其中A以dd-mm-yyyy格式表示今天的日期。 幾乎每天我都會打開此工作簿並進行更改,然后使用今天的日期( A )更新文件名。
因此,我創建了一個Workbook_BeforeClose
事件,打算在其中寫入一些代碼,該事件將在每次關閉文件時自動重命名文件。 我使用了Workbook.SaveAs
方法,但這也保留了舊文件。
有沒有一種方法可以重命名打開的文件,另存為而不保存原始文件的另存為,或者可以優雅地完成我想要的操作的其他方法?
碼:
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我在任何情況下都希望刪除/覆蓋第一個文件。 不僅具有與新名稱相同的名稱。
保存您的工作簿並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
如果您想在關閉工作簿事件中執行此操作,
希望這可以幫助。
添加禁用警報。
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Application.DisplayAlerts = False
ThisWorkbook.SaveAs "sth" & Format(Date, "dd-mm-yyyy") & ".xlsm"
End Sub
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.