模块中提供的vba计时器

时间:2017-03-19 14:49:59

标签: vba timer

有人可以告诉我是否以及如何计算在VBA excel中运行各种模块的时间? 我只能计算一个模块的经过时间。但是,当涉及到超过1个模块时,似乎没有任何信息。或者我是失明的。

使用一个模块,我将Timer值传递给在代码开头设置的变量,然后在结尾处。然后我从第一个中扣除第二个变量。 当我尝试在模块之间执行它时,初始变量值被重置为空。

非常感谢任何指针 Tommeck37

1 个答案:

答案 0 :(得分:1)

要以一种简单的方法来衡量执行部分代码所需的时间,您可以使用VBA timer()函数。这个功能并不完美,但它是一个很好的起点。

Timer()返回自午夜以来经过的秒数,包括分数。

在调用模块之前,将timer()的结果分配给变量。 Timer返回Double,但您也可以将其存储在变体中。然后在模块之后再次调用timer()。例如:

time1 = timer()
call Proc1()
time2 = timer()
call Proc2()
time3 = timer()
debug.print "Proc1 time: " & cStr(time2-time1)
debug.print "Proc2 time: " & cStr(time3-time2)

您可以在VBA中使用其他计时器,但它们需要使用Windows程序,并且更难设置和使用。对于总时间,这很好。如果你想以毫秒精度(或更好)精确计时,那么请研究其他方法。