我为工作而放在一起的宏有一个奇怪的问题。
背景故事,我基本上设计了一个宏来在 X 时间后打开受保护的工作簿后关闭它。它是一个共享文档,当人们打开它时,他们经常忘记关闭文档,将其锁定以防止其他人使用它。
所以我拿了一些其他的宏来创建一个计时器。
Sub Start_Timer()
'BASIC UP COUNTER
Application.OnTime Now() + TimeValue("00:00:01"), "CheckStatus"
End Sub
Sub CheckStatus()
Dim ws As Worksheet
For Each ws In Worksheets
If ws.Range("IV1").Value > 60 Then
'IF IDLE LONGER THAN VALUE ABOVE, RUN THE FOLLOWING
Application.DisplayAlerts = False 'WORKS TO DISABLE ALERT PROMPT
ThisWorkbook.Close (False) 'CLOSE FILE WITHOUT SAVING
Application.Quit
Application.DisplayAlerts = True 'RESETS DISPLAY ALERTS
End Sub
Else
'ADD 1 TO COUNTER
ws.Range("IV1").Value = ws.Range("IV1").Value + 1
End If
Next
Start_Timer
End Sub
在本工作簿中
Private Sub Workbook_Open()
Dim ws As Worksheet
MsgBox ("This Worksheet has a 15 min timer")
Start_Timer
For Each ws In Worksheets
'Columns("IV:IV").Hidden = True
ws.Range("IV1").Value = 1
Next
End Sub
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
Dim ws As Worksheet
For Each ws In Worksheets
ts.Range("IV1").Value = 1
Next
End Sub
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Application.DisplayAlerts = False 'WORKS TO DISABLE ALERT PROMPT
ThisWorkbook.Close (False) 'CLOSE FILE WITHOUT SAVING
Application.Quit
Application.DisplayAlerts = True 'RESETS DISPLAY ALERTS
End Sub
在大多数情况下,它都有效。但是,我宁愿消除“Application.Quit”之类的东西。我遇到的问题是,当我消除该行时,工作簿在手动关闭它或尝试手动退出 excel 后立即重新打开。
我认为这可能与不断更改 1 个单元格的值有关(很远,所以没有人看到它)并在不保存的情况下退出。
谁能帮我?谢谢