我正在尝试学习如何更快地遍历命名范围(可能通过计算表外),因为我知道在表上查找单元格引用非常慢。这是我尝试重新编写的代码的片段-有关以下方面的任何建议:1)如何在循环之前“更新”调用,以及2)如何有效地重新执行循环
foo
答案 0 :(得分:2)
该VBA代码基本上是在模拟用户点击,而不利用很多对象模型。
熟悉Workbook.Names
和Worksheet.Names
,以及Excel.Name
类:您可以通过{{1}获得Range
所指的Name
}}属性。
分配给RefersToRange
会将公式分配给该范围内的每个单元格:
Range.Formula
无需明确地With ThisWorkbook.Names
.Item("namedcell0").RefersToRange.Formula = "0" ' why is this a string literal?
.Item("namedcell1").RefersToRange.Formula = c
.Item("namedcell2").RefersToRange.Formula = d
End With
(假设计算模式是自动的-否则,考虑在编写所有公式之后仅计算一次)。