excel 中使用vba 实现时间的计算-VBA测试报告计算时间-

2024-11-24 00:22:03
推荐回答(1个)
回答1:

我最近与一位Excel专家交换了电子邮件,该专家得出的结论是VLOOKUP是Excel最快的查找方法。他说,它甚至比INDEX-MATCH更快。为了支持这个令人惊讶的结论,他向我发送了他的测试宏。

宏编写得很巧妙,但是有两个致命的缺陷。首先,他的测试方法有很多开销,以至于掩盖了他要测试的计算时间。其次,间接费用在计算方法之间有所不同。

这就是为什么他的结论不正确的原因。

在本文中,我将向您展示测试替代报表设计的计算时间的宏。宏很简单,但是可以工作。您可以在此处下载“计算计时器”宏。

下一篇文章(用于测试Excel查找方法的计算时间的易失性工作簿)将说明如何确保在运行这些测试时报表能够真正进行计算。这是一个重要的考虑因素,因为如果您没有正确处理此步骤,则工作簿将无法完全计算,并且测试可能会返回错误的结果。

最后,第三篇文章(Excel的最快查找方法:测试结果)将总结我从VLOOKUP和INDEX-MATCH的实际计算时间中学到的知识。您会看到最快的方法需要同时使用正确的查找功能和正确的查找设计。

但是,请记住,相对计算时间并不总是决定您的电子表格设计。与快速但困难的设计相比,慢而轻松的设计可能是更好的选择。

即使这样,当您进行这些权衡时,也有助于了解它们的相对计算时间。这就是这个宏可以给您的。

计算计时器宏**

这是CalcTimer.xls工作簿的Sheet1的内容。您可以看到我已经设置了两个范围名称。

循环指定宏应在计算过程中循环的次数。

结果包含循环中所有计算花费的总秒数。

当我设置一个新的计算时间测试时,通常会使用两个循环运行第一个测试。一旦看到它们需要花多长时间进行计算,就可以估算出实际需要多少个循环。另一方面,如果我一开始输入大量数字,我将不知道我是否需要等待五分钟或五个小时才能使Excel完成测试。

这是CalcTimer宏。您可以在此处了解更多。

这个宏真的很简单。它只会加载自午夜以来经过的秒数的gStartTime变量。它计算指定次数的Excel。然后从当前时间中减去开始时间以计算计算时间。

最后,它将计算时间写入工作表。

在下一篇文章中,我将说明如何设置数据和工作表以测试查找方法。

标记为: INDEX-MATCH, VBA, VLOOKUP