Cara mengetahui kapan suatu file ditutup


1

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"?


Apakah kode VBA terletak di buku kerja yang ingin Anda tutup?
Ƭᴇcʜιᴇ007

Tidak. Sumber data untuk disalin dan tujuan adalah dua file tambahan. 3 file total.
B540Glenn

Menyelipkan DoEventssesaat sebelum menampilkan MsgBox, 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) - DoEventsakan melakukan hal itu.
Mathieu Guindon

@ Mat's Mug, DoEvents bekerja. Jika Anda ingin memasukkannya dalam bentuk jawaban, saya akan menerimanya. Maaf butuh waktu lama untuk merespons. Butuh beberapa saat untuk menghasilkan file uji yang sesuai.
B540Glenn
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.