我很难让SaveAs
命令正常工作。对于本地医院,有从模板文件创建的患者图表,在其中输入患者数据,然后手动重命名(使用另存为),然后将其复制到另一个位置作为备份。模板被一遍又一遍地重复使用。
我的代码的目标是自动化这个过程。因此,我想从模板文件开始保存到两个不同的位置。不应覆盖模板文件。在模板中,用户分别在单元格 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