用户不活动后更改显示的表格

时间:2012-09-06 08:56:22

标签: excel vba

我正在尝试创建一段代码,在一段时间不活动后链接到某个工作表,我的意思是不活动不是通过工作表切换,所以当有人点击作为活动的工作表时一旦它在相同的工作表上一段时间,我希望它切换到工作表1(工作表1链接到演示文稿,并将像屏幕保护程序一样)

这是我在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

这适用于输入数据,当有人长时间没有输入数据时它会转到我的工作表,但如果有人没有切换工作表,我希望它能做到,因为无论如何都没有人可以访问数据,只是查看床单。

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

  

对象'_ Application'的'运行时错误'1004'方法'OnTime'   失败“

这两个问题需要克服,如果有人能帮助J

我真的很感激

有关信息,过程SelectIndex只是一个切换到第1页的宏

1 个答案:

答案 0 :(得分:1)

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

Private Sub Workbook_SheetActivate(ByVal Sh As Object)
    Call SetTimer   
End Sub