我有一个脚本,用于将一段数据从一个文件复制到另一个文件。目标文件在用户之间共享。复制后,我保存并关闭目标文件并发出“已更新”消息。
我的代码:
...
Workbooks(CurrFile).Activate
Worksheets(CurrHosp).Range("A1").Select
Selection.PasteSpecial xlPasteValues
TimeStamp = Now()
ActiveSheet.Range("A5").Value = TimeStamp
ActiveSheet.Range("A1").Select
Workbooks(ModelFile).Close SaveChanges:=False
Workbooks(CurrFile).Close SaveChanges:=True
MsgBox ("Destination Updated")
Else
MsgBox ("No Source File Selected")
End If
Application.StatusBar = False
Application.DisplayAlerts = True
Application.ScreenUpdating = True
End Sub
今天,一位用户在离开办公桌时,将“已更新”消息框保持打开状态。这导致目标文件 (Currfile) 处于打开状态,从而阻止其他用户对其进行更新。
在发出 Workbooks().Close 语句后,Excel 何时真正关闭文件?是在子例程完成时吗?在发出“已更新”消息框之前,如何检测它是否真的已关闭?