几个月来我一直在使用这个网站来帮助我开始我早期的编码生涯,这是我在这里的第一篇文章。如果我昨天在搜索论坛时错过了这个问题,我深表歉意。我有一个包含大约 6,000 个活动 Sumif 的电子表格,它们引用了一个包含 500,000 多行的表。可以想象,这需要一些时间来计算。我已将它们写入 VBA,因此它们仅在用户选择这样做时进行计算。但是,由于 sumif 如此之多,代码运行大约需要 3-5 分钟。我正在寻找加快速度以获得更好的最终用户体验的方法。我将在下面发布我如何执行 sumifs。仅在某些情况下,这是对同一组用户执行 sumifs 两次,但使用一个不同的标准。如果我遗漏了任何相关信息,请告诉我。
For i = 1 To 12
Range("Emp_Utility").Offset(1, i).Activate
Do Until Cells(ActiveCell.Row, 2) = ""
ActiveCell.Value = Application.WorksheetFunction.SumIfs(Hrs, Emp, Cells(ActiveCell.Row, 2), Y, Cells(4, ActiveCell.Column), M, Cells(3, ActiveCell.Column))
ActiveCell.Offset(1, 0).Activate
Loop
Next i
For a = 1 To 12
Range("Emp_Billable").Offset(1, a).Activate
Do Until Cells(ActiveCell.Row, 30) = ""
ActiveCell.Value = Application.WorksheetFunction.SumIfs(Hrs, Emp, Cells(ActiveCell.Row, 2), Y, Cells(4, ActiveCell.Column), M, Cells(3, ActiveCell.Column), Bill, "No")
ActiveCell.Offset(1, 0).Activate
Loop
Next a