2

我有一些代码通过检查属性 Excel.Range.Cells.Count 来检查 Excel.Range 中是否有任何单元格。从我的分析来看,这似乎是一个瓶颈(请注意,该方法被多次调用)。有谁知道 Count 属性是如何实现的,它是通过在每次调用时遍历所有单元格来计算的,还是一个常数?

我在 Microsoft 的文档、StackOverflow 或 Google 上找不到任何相关信息。任何帮助表示赞赏。

非常感谢。

4

1 回答 1

0

由于 Excel.Range.Cells 返回 Range 对象本身,因此使用 Range 的属性。它的文档说它返回集合中对象的数量。[MSDN][1]

这表明 range 就像一个动态数组,因此它的 Count 属性不能是常量(在 C 样式常量的意义上)。因此,我们可以推断该属性是在每次调用时计算的,至少通过读取内部存储的值,该值仅在集合更改时更新。

[1] http://msdn.microsoft.com/en-us/library/aa214230(v=office.11 ​​).aspx

于 2012-07-19T07:21:26.410 回答