我一直在寻找一个可以轻松嵌入到我的指针中的计时器功能,以显示每个步骤需要多少秒。我正在使用常规的debug.print和几个变量使我的代码忙,并且很难从最后记录的步骤中减去新的计时器也是多余的。我正在寻找一个函数来捕获每个步骤的时间,并找出从第一步开始的总耗用时间。
答案 0 :(得分:0)
这是我为此目的而开发的内容。你必须声明一个公共对象" Scripting.Dictionary"类型和长变量为ti。
Public d As Object, ti as long
在调用函数之前,并在一个程序中使用您的程序:
Set d = CreateObject("Scripting.Dictionary")
如果已将Microsoft Scripting Runtime添加到库中,则可以使用早期绑定。您的声明如下:
Dim d As New Scripting.Dictionary, ti as long
无论如何这里是:
标题是一个字符串,作为代码中阶段/步骤的提醒或标记 对于函数的第一个实例,Newstart应设置为TRUE 如果您希望在该阶段之前的总耗用时间,则NeedTotal应设置为true。
Public Function gettimer(Optional ByVal Title As String, _
Optional ByVal Newstart As Boolean, _
Optional ByVal NeedTotal As Boolean)
If Newstart = True Or ti = 0 Then
ti = 0
d("T0") = Timer
gettimer = ti & vbTab & vbTab & "0.00" & vbTab & vbTab & "Start @ " _
& Format(Time, "h:mm:ss") & vbTab & Title
Else
gettimer = ti & vbTab & vbTab & Format(Round(Timer - d("T" & ti - 1), 2), "0.00") _
& vbTab & vbTab & Title
d("T" & ti) = Timer
End If
If NeedTotal Then
gettimer = gettimer & vbTab & vbTab & vbTab & "Time elapsed from the start = " _
& vbTab & Round(d("T" & ti) - d("T0"), 4)
End If
ti = ti + 1
Debug.Print gettimer
End Function