我有很多困难得到一个SaveAs
命令才能正常工作。 对于本地的医院,有哪些是从模板文件创建之后将其更名为手动病历,在其中输入病人数据(使用另存为),然后复制到另一个位置作为备份。 该模板重复使用一遍又一遍。
我的代码的目标是这个自动执行此过程。 因此,我要保存到两个不同的位置,从模板文件开始。 模板文件不应该被覆盖。 在模板中,用户设置在电池K1和N1,repectively部门名称和床号。 这些字段确定该文件夹中的文件夹和文件名。
当按下保存按钮,我的代码开始运行。 我使用SaveCopyAs保存备份文件之后,我想用另存为保存到我的主要文件夹中。 另存为应设置这个新的文件是我的工作文件,因此不能覆盖我的模板。 至少,这是什么,我相信...
问题是:当运行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