首先,这是个很有趣的例子,可以考虑在日常工作中提醒个人事项。
代码如下:
Option Explicit
Private Sub CommandButton1_Click()
Dim mop As Boolean '定义一个布尔变量
mop = True '令其等于True
Select Case mop
Case OptionButton1 = mop '选中第一个,则不作处理
Case Else
Bdone(Thing) = True '选中2,3个则对当前的事件不再处理
End Select
UserForm1.Hide '提醒完后,关闭窗体
End Sub
Option Explicit
Public Bdone(3) As Boolean '定义全局变量,记录用户的反应
Public Thing As Integer '定义全局变量,记录已经触发的事件
Sub test()
'定义变量Inowtime用分钟总数表示现在的时间,Iplantime(3)记录用分钟表示当日各个时间
Dim Inowtime As Integer, Iplantime(3) As Integer
'定义Iday表示当日所在的星期乘2
Dim i As Integer, Iday As Integer
Iday = Weekday(Now()) * 2
Inowtime = Hour(Now()) * 60 + Minute(Now())
For i = 1 To 3
Iplantime(i) = Hour(Cells(Iday, i + 2)) * 60 + Minute(Cells(Iday, i + 2))
'比较每个计划时间与当前时间
Select Case (Iplantime(i) - Inowtime)
'如果计划时间在当前时间之后,则事件已经过去,不再提醒
Case Is < 0
'如果计划时间比当前时间在30分钟之内,则进行提醒
Case Is < 30
'加入布尔变量用来考虑用户的选择,如果用户选择不提醒,则不提醒当前事件
If Bdone(i) = False Then
Thing = i '记录当前事件
'赋值给窗体标签,设置提示语
UserForm1.Label1.Caption = "还有" + Str(Iplantime(i) - Inowtime) + _
"分钟就到" + Cells(Iday + 1, i + 2) + "的时间了"
UserForm1.Show '显示窗体
End If
End Select
Next i
'每隔5分钟调用此函数
Application.OnTime Now + TimeValue("00:05:00"), "test"
End Sub
Option Explicit
Private Sub Workbook_Open()
'激活"一周时间安排"表
Sheets("一周时间安排").Activate
test '一打开电脑就执行test函数
'每隔5分钟调用此函数
Application.OnTime Now + TimeValue("00:05:00"), "test"
End Sub
窗体设计:
下周,准备在自己的电脑上用起来。呵呵。