'--------------------------------------------------------------------------------- '以下是调用此类的 '---------------------------------------------------------------------------------Public WithEvents objTempM As timeObjCls '声明一个新的对象的事件 Private i As LongPrivate Sub Command1_Click() Set objTempM = New timeObjCls '实例化一个对象 objTempM.timeStar 1 '开始 End SubPrivate Sub Form_Unload(Cancel As Integer) Set objTempM = Nothing End SubPrivate Sub objTempM_timeEvent() '事件中需要完成的任务 i = i + 1 Debug.Print i If i > 10000 Then Set objTempM = Nothing End If End Sub'--------------------------------------------------------------------------------- '以下是类代码中的 '---------------------------------------------------------------------------------Public Event timeEvent() '声明一个事钟事件,外部使用 Private lngE As Long Private boolIsEnd As BooleanPublic Sub timeStar(intervalLng As Long, Optional boolF As Boolean = False)
Dim lngA As LongDo While True DoEvents If ((Timer - lngE) > intervalLng) And (Not boolIsEnd) Then '如果时间间隔大于 '引发事件 RaiseEvent timeEvent lngE = Timer Else If boolIsEnd Then '退出循环 Exit Do End If End If Loop End Sub
'以下是调用此类的
'---------------------------------------------------------------------------------Public WithEvents objTempM As timeObjCls '声明一个新的对象的事件
Private i As LongPrivate Sub Command1_Click()
Set objTempM = New timeObjCls '实例化一个对象
objTempM.timeStar 1 '开始
End SubPrivate Sub Form_Unload(Cancel As Integer)
Set objTempM = Nothing
End SubPrivate Sub objTempM_timeEvent() '事件中需要完成的任务
i = i + 1
Debug.Print i
If i > 10000 Then
Set objTempM = Nothing
End If
End Sub'---------------------------------------------------------------------------------
'以下是类代码中的
'---------------------------------------------------------------------------------Public Event timeEvent() '声明一个事钟事件,外部使用
Private lngE As Long
Private boolIsEnd As BooleanPublic Sub timeStar(intervalLng As Long, Optional boolF As Boolean = False)
Dim lngA As LongDo While True
DoEvents
If ((Timer - lngE) > intervalLng) And (Not boolIsEnd) Then '如果时间间隔大于
'引发事件
RaiseEvent timeEvent
lngE = Timer
Else
If boolIsEnd Then
'退出循环
Exit Do
End If
End If
Loop
End Sub