vba ontime 事件如果超过了设置的时间会发生什么

问题描述

我正在尝试使用 vba usind application.ontime 事件编写电子邮件提醒,但这是我的第一次,所以我有一些问题。

首先在这里我想做什么:

我有一张这样的桌子

enter image description here

如果在显示的小时之前的一小时内没有点击确定按钮,我想发送一封电子邮件,所以我正在尝试一些带有 ontime 事件的代码,我知道这可能会触发多个时间事件,所以为了避免失去对准时呼叫的跟踪,我想做这样的事情:

(这只是一个尝试代码的工作簿,一旦我想通了我将在真正的工作簿中修改代码

  Sub timer()

      r = TimeSerial(Hour(Foglio1.Cells(1,"h").Value),Minute(Foglio1.Cells(1,0)

      Application.OnTime r,"test"

      End Sub

这是timer sub的启动,然后在这里测试

Sub test()
 Dim i As Long

   Foglio1.Cells(1,1).Value = Foglio1.Cells(1,1).Value + 1


   Call test2
  End Sub

测试是我最终放置电子邮件提醒宏的地方(这只是让我不明白它是如何工作的)

这里是test2

   Sub test2()

    Dim oraricheck As New Collection

    For i = 1 To 3

           oraricheck.Add Foglio1.Cells(i,"l").Value
    Next i


         Dim orascritta As Date

          orascritta = Foglio1.Cells(1,"h").Value

          Dim num As Long

            num = Ncoll(oraricheck,orascritta)
          On Error GoTo basta
          Foglio1.Cells(1,"h").Value = oraricheck(num + 1)


           Call timer

            basta:

            End Sub


              Function Ncoll(coll As Collection,ora As Date) As Long

                Dim i As Long


                  For i = 1 To coll.Count

                     If coll(i) = ora Then

                         Ncoll = i
                         Exit Function
                         End If

                          Next i



                      End Function

所以这个想法是,我写了一个代码提取最早的时间并将其放入一个单元格中(在示例中 Foglio1.Cells(1,"h").Value)

然后启动计时器 ---> 测试--> 使用 test2 我创建了从最小到最大的顺序检查所需的小时数的集合,一旦检查了最早的,则将放入第二小的H1 以此类推,直到检查所有日期。

现在我有一些问题

如果我关闭工作簿,我会停止 ontime 事件,如果我打开工作簿,我会继续,但是如果我打开这本书并且时间设定已经过去,会发生什么?

例如

application.ontime 时间值("12:00:00"),"测试"

如果我开始时超过了 12 点会怎样?

什么也没有,或者第二天的同一时间通话?

我再次尝试启动 ontime 事件关闭并在工作簿打开事件中通过恢复调用重新打开

 Private Sub Workbook_open()
  Call timer

 End Sub

sub 工作但由于某种原因单元格没有更新,直到我在工作表中做一些事情,这正常吗?还是只是一个错误

又是一个问题

如果我构建了一个时间集合并设置了一系列准时事件,我该如何停止已经设置的事件?

我怎样才能(如果可能)从他们停止的地方恢复?

提前致谢

我希望我说清楚(对不起我的英语)

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...