簡體   English   中英

VBA后台代碼查看電子表格打開了多長時間

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM