[英]VBA background code to see how long the spreadsheet has been open
我想在電子表格中寫一些 VBA 以便它評估電子表格打開了多長時間,一旦達到某個時間點(比如一個小時),它就會警告用戶它將在 15 分鍾內自動關閉。
有沒有人做過這樣的事情或看到它打開? 我有一個名為 Reference 的選項卡,當他們打開它時,我可以在其中放置一段自動打開的代碼來記錄,但我希望電子表格以特定的時間間隔自動檢查工作表打開的時間。
這樣做的目的是我想強制關閉用戶不小心打開電子表格的地方,因此重要的是不要根據用戶輸入對其進行評估。 注意 - 我不在乎他們是否失去工作,我只想關閉電子表格。
非常感謝任何幫助。
要安排例程的調用,請使用Application.OnTime
。 為確保例程安排在“打開后一小時”,請創建一個 Workbook-Open 子(在 ThisWorkbook-Module 中)並將以下內容放入其中:
Private Sub Workbook_Open()
Application.OnTime DateAdd("h", 1, Now), InformUser
End Sub
這將在工作簿打開一小時后調用 Sub InformUser
。 在此例程中,您可以添加另一個對OnTime
的調用。 但是,您需要注意如何通知用戶。 如果您簡單地使用MsgBox
但用戶對此沒有反應,則 MsgBox-Window 保持活動狀態,並且由於它是模態 window,代碼將不會繼續運行,並且永遠不會觸發OnTime
過程。 創建帶有 TimeOut 的 MsgBox 並不容易(請參閱顯示具有超時值的消息框),因此可以創建一個簡單的表單並將其顯示為非模態。
Sub InformUser()
InfoForm.Show modal:=False
Application.OnTime DateAdd("n", 15, Now), ShutDown ' "n": Minutes ("m" stands for months)
End Sub
Sub ShutDown
ThisWorkbook.Close SaveChanges:=True ' Or "False" if you don't want to save - use on your own risk...
End Sub
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.