我遇到了很多的困難得到一個SaveAs
命令才能正常工作。對於當地醫院來說,患者圖表是從模板文件創建的,其中輸入患者數據,然後手動重命名(使用save-As),然後複製到另一個位置作爲備份。該模板一遍又一遍地重複使用。另存爲命令不起作用,但SaveCopyAs確實
我的代碼的目標是這個自動執行此過程。因此我想從模板文件開始保存到兩個不同的位置。模板文件不應該被覆蓋。在模板中,用戶分別在單元格K1和N1中設置部門名稱和牀號。這些字段確定該文件夾中的文件夾和文件名。
當按下保存按鈕時,我的代碼開始運行。我使用SaveCopyAs來保存備份文件,之後我想使用SaveAs保存到我的主文件夾。 SaveAs應該將這個新文件設置爲我的工作文件,因此不會覆蓋我的模板。至少這是我相信...
問題:當運行SaveAs
,Excel崩潰(沒有任何明確的錯誤信息)。奇怪的事情(對我來說)是,當我將SaveAs
替換爲SaveCopyAs
時,它不會崩潰。
問題:爲什麼Excel會在這一點上崩潰?有沒有辦法來解決或避免這種行爲?我無法找到不會改變我的模板的合適解決方案。任何幫助或建議都是值得歡迎的。
下面的代碼放置在我的「的ThisWorkbook」的文件夾,並執行我點擊「保存」按鈕上每一次。
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
department = Range("K1").Value 'Name of department: CHIC, THIC, ICB or NCIC
bedNumber = Range("N1").Value 'bednumber or roomnumber: Bed 1. Bed 2 or Room 1, Room 2.
newFileName = department & "\" & bedNumber & ".xls"
If IsEmpty(department) Then
MsgBox "You haven't entered a department. Please try again."
ElseIf IsEmpty(bedNumber) Then
MsgBox "You haven't entered a bed or room number. Please try again."
Else
ActiveWorkbook.SaveCopyAs "C:\myBackupFolder\" + newFileName
End If
ActiveWorkbook.SaveAs "C:\myPrimaryFolder\" + newFileName 'Doesn't work
'ActiveWorkbook.SaveCopyAs "C:\myPrimaryFolder\" + newFileName 'Does work, but I end up with a messed up template!
End Sub
我注意到你沒有在程序中設置Cancel。你可能想把'Cancel'設置爲** True **,所以excel不會自己保存。 – SeanC
好點!謝謝! –