【发布时间】:2021-08-24 01:01:20
【问题描述】:
我有一些较大的文件需要验证其中的数据。其中大部分是自动输入的,可以自动输入我需要的公式。这有助于消除在大文件上复制和粘贴的错误。问题在于这个最新的验证。
最新的验证之一涉及计算匹配 3 列的行数。 3 列在工作表 2 中,要计数的行在工作表 1 中。然后将此计数与基于工作表 2 的预期数字进行比较。使用 CountIF 很容易,但文件很大,最多可能需要其中一些是一个小时。我正在努力寻找更快的东西。
我正在使用较小的文件,但仍需要大约 1 分钟。只有大约 1800 行。
我有这样的事情:
在 Check1 中我使用的是:=COUNTIFS(Sheet1!A:A,A2,Sheet1!B:B,B2,Sheet1!C:C,C2)
我的代码将该公式放在活动单元格中。有没有更好的方法来做到这一点?
无论如何 - 使用 VB 或任何东西 - 来提高性能。 当行开始进入 10 的数千时,是时候开始这个并吃午饭了。然后,希望当我回到办公桌时完成!
谢谢。
【问题讨论】:
-
请出示代码。导致延迟的不是公式。
-
我认为他此时只是在使用countifs函数。
-
ActiveCell.Offset(0,6).FormulaR1C1 = "COUNTIFS(...." 也试过 ActiveCell.Offset(0,6).Value = "COUNTIFS(..."
-
我们需要查看完整的循环,问题在于您使用的是 select 和 activecell。
-
您是否使用 VBA 将此公式写入每一行?那会很慢。把公式写一次,然后抄下来。