Q:由于工作太多太杂,导致经常忘记要做的事情,希望利用Excel工作表来定时提醒当前要进行的工作。也就是说,在到达某个时刻后,工作表中的文本框会自动显示该时刻应该做的工作。如下面的图1和图2所示,图1为工作安排表,列A中为安排的工作,列B中为相应工作开始的时间;图2用于显示当前应进行的工作。
图1:工作安排表。列A中是工作安排,列B中是工作开始的时间,可根据需要修改和添加。
图2:显示当前工作的界面。单击“显示”按钮后程序开始工作,当达到某时刻后,文本框中会显示当前应进行的工作。
A:使用OnTime方法来解决。程序代码如下:
代码语言:javascript复制Sub DisplayData()
Application.OnTime Now TimeSerial(0, 0, 1), "ChangeText"
End Sub
Sub ChangeText()
Dim rng As Range
Dim rngFind As Range
Dim rngValue As Range
Dim rngStart As Range
Dim dTime As Date
Dim lLastRow As Long
On Error Resume Next
‘获取最后的数据行
lLastRow =Sheet3.Range("B65536").End(xlUp).Row
‘赋值时间所在列区域
Set rng =Sheet3.Range("B1:B" & lLastRow)
‘当前时间
dTime = Time
‘查找当前时间
Set rngFind =rng.Find(dTime)
Sheet5.TextBox1.Value =rngFind.Offset(0, -1).Value
DisplayData
End Sub
注意,工作表中的“显示”按钮关联的子过程为“DisplayData”。