Excel VBA:有没有更快的方式来执行总计?

我正在使用一个扩展范围的countif函数,并自动填充以获得运行总数,并想知道是否有更好的方法去做。

COUNTIF($ A $ 2:A2,A2)+自动填充

如果只有几千行,似乎没有问题,但是当它达到10k +行时,它会显着减慢。

我在网上search了一些线索,但所有“更快”的方式都与总计数有关,而不是跑步计数。

感谢您的帮助!

您可以使用“ Dictionary ,因为它使用高效的searchalgorithm(二进制search),所以可以更快地处理大数据。 在大数据集上,这应该会引起显着的差异。

 Sub RunningCounts() Dim dict As Object: Set dict = CreateObject("Scripting.Dictionary") Dim r As Range: Set r = Sheet1.Range("A2", Sheet1.Cells(Sheet1.Rows.count, "A").End(xlUp)) Dim values: values = r.Value2 Dim i As Long For i = LBound(values, 1) To UBound(values, 1) dict(values(i, 1)) = dict(values(i, 1)) + 1 values(i, 1) = dict(values(i, 1)) Next r.Offset(, 1).value = values ' <-- writes results on next column. change as needed End Sub