我有一些代码,我通过检查属性Excel.Range.Cells.Count来检查我的Excel.Range中是否有任何单元格。从我的分析来看,这似乎是一个瓶颈(请注意,该方法被称为很多次)。有没有人知道Count属性是如何实现的,它是通过迭代每次调用的所有单元格来计算的,还是一个常量?
我在Microsoft的文档,StackOverflow或Google上找不到任何相关内容。任何帮助表示赞赏。
非常感谢。
答案 0 :(得分:0)
由于Excel.Range.Cells返回Range对象本身,因此使用Range的属性。它的文档说它返回集合中的对象数。 [MSDN] [1]
这表明范围就像一个动态数组,因此它的Count属性不能是常量(在C风格常量的意义上)。因此,我们可以推断出每次调用都会计算属性,至少通过读取内部存储的值,该值仅在集合更改时更新。
[1] http://msdn.microsoft.com/en-us/library/aa214230(v=office.11).aspx