我正在使用宏将公式重写为某个范围,以防用户无意间修改了单元格。 遍历每个单元格并修复错误会比重写整个范围更快吗?有想法吗?
我曾尝试保护床单和某些范围,但偶尔还是有问题。
当前使用:
Sheet2.Range("TableSh[Produced]").Formula = "=SUMIF(TableP[Run],[@Run],TableP[Good PCS])"
这↓会更快吗?
For Each R In Range("TableSh[Produced]")
If Not R.Formula = "=SUMIF(TableP[Run],[@Run],TableP[Good PCS])" Then
R.Formula = "=SUMIF(TableP[Run],[@Run],TableP[Good PCS])"
End If
Next
答案 0 :(得分:0)
如果只运行它们两个并停止时间(您可以很容易地回答自己),那么问题“这个↓会更快吗?” 显然是不必要的。
就像Vityata所说的那样,在极少数情况下,使用循环比使用 not 循环更快。 例如,如果公式将是重载计算,则该循环在某些情况下可能会受益,尤其是当它只需要编写非常详细的公式时(因此,我们只有一个vew重载计算,而不是一个整列)。
一般来说,如果有其他解决方案,我总是要尽量避免循环。但是,没有哪个更快的答案。如有疑问,请对数据进行更好的测试,这在很大程度上取决于实际情况。