2015-09-22 42 views
1

我的目標是:讓Excel將工作簿的副本保存在與工作簿所在的原始文件夾不同的文件夾以及時間戳中。1004錯誤「它可能被移動,重命名或刪除?」

此代碼正常運行:

Private Sub Workbook_BeforeClose(Cancel As Boolean) 
    ThisWorkbook.SaveCopyAs Replace(ThisWorkbook.FullName, ".xlsm", " _ 
    (" & Format(Now, "yyyy-mm-dd hhmm") & ").xlsm") 
End Sub 

但此代碼不會運行在所有。每次都遇到我關閉工作簿時錯誤1004:

Private Sub Workbook_BeforeClose(Cancel As Boolean) 
    ThisWorkbook.SaveCopyAs (ThisWorkbook.Name & Format(Now, "yyyy-mm-dd hh:mm")) 
End Sub 

消息我在嘗試與第二碼關閉工作簿時:http://prntscr.com/8iiyyd

+5

文件名不能包含冒號。用其他東西替換它。 – DanL

回答

2

這是防止Windows保存文件結腸,加上擴展名將會與此時添加的時間戳一樣奇怪。 您的代碼將產生以下文件名: Try.xlsm2015-09-22 15:37

您還需要提供您的文件夾位置。

也許你可以試試這個:

ThisWorkbook.SaveCopyAs 「C:\文件夾\」 &更換(ThisWorkbook.Name, 「.xl」,格式(NOW(), 「YYYY-MM-DD HHMM」 )&「.xl」)

你當然可以指定自己的文件夾。

如果你想要把它放在一個子文件夾,相對於當前文件的位置,然後使用此:

ThisWorkbook.SaveCopyAs Thisworkbook.Path & "\subfolder\" & Replace(ThisWorkbook.Name, ".xl", Format(Now(), "yyyy-mm-dd hhmm") & ".xl") 

當然你也可以指定自己的子文件夾

希望這有助於

1

我設法解決了我的問題。我不想爲第二個代碼使用Replace(我想用另一個代碼實現同樣的功能)。

下面是修復代碼:

Private Sub Workbook_BeforeClose(Cancel As Boolean) 
    ThisWorkbook.SaveCopyAs "C:\Users\Korisnik\Box Sync\" & Format(Now, "yyyy-mm-dd hhmm") & ThisWorkbook.Name 
End Sub 

它所有的工作現在, 非常感謝

相關問題