Saya memiliki skrip yang menyalin bagian data dari satu file ke file lainnya. File tujuan dibagikan di antara pengguna. Setelah salinan, saya menyimpan dan menutup file tujuan dan mengeluarkan pesan "Diperbarui".
Kode Saya:
...
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
Hari ini, seorang pengguna meninggalkan mejanya dengan kotak pesan "Diperbarui" terbuka. Ini meninggalkan file tujuan (Currfile) dalam keadaan terbuka mencegah pengguna lain memperbaruinya.
Kapan sebenarnya Excel menutup file setelah menerbitkan Workbooks (). Tutup pernyataan? Apakah itu ketika subrutin selesai? Bagaimana saya bisa mendeteksi itu benar-benar ditutup sebelum saya mengeluarkan kotak pesan "Diperbarui"?
microsoft-excel
vba
B540Glenn
sumber
sumber
DoEvents
sesaat sebelum menampilkanMsgBox
, sehingga membiarkan Excel menangani penutupan. Anda tidak ingin "mendeteksi bahwa itu benar-benar ditutup", Anda hanya ingin memberi Excel kesempatan untuk melakukan hal itu sebelum Anda melakukan sesuatu yang lain (misalnya menampilkan kotak pesan) -DoEvents
akan melakukan hal itu.