0

我正在尝试创建一段代码,在一段时间不活动后链接到某个工作表,我的意思是不活动不是在工作表之间切换,所以当有人点击被视为活动的工作表时,但只要它在同一张纸上已经有一段时间了

这是我在 ThisWorkbook 中的代码

Private nTime As Date

Const proc As String = "SelectIndex"

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Source As Range)

    Call SetTimer

End Sub



Private Sub SetTimer()

    If nTime <> 0 Then

    Call Application.OnTime(EarliestTime:=nTime, Procedure:=proc, Schedule:=False)

    End If

    nTime = Now + TimeValue("00:00:05")

    Application.OnTime nTime, Procedure:=proc

End Sub

这适用于输入数据,当有人长时间没有输入数据时它会进入我的工作表,但如果有人没有切换工作表,我希望它这样做,因为无论如何没有人有权输入数据,只需查看工作表。

它也只能工作一次,当您取消演示并再次尝试时,我收到错误

“运行时错误'1004'对象'_应用程序'的方法'OnTime'失败”

只需克服这两个问题,如果有人可以帮助 J,我将不胜感激

有关信息,该过程SelectIndex只是一个切换到工作表 1 的宏

4

1 回答 1

1

如果我正确理解了这个问题,您可以在Sheet_Activate事件中触发计时器:

Private Sub Workbook_SheetActivate(ByVal Sh As Object)
    Call SetTimer   
End Sub
于 2012-09-06T09:32:43.023 回答