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 に答える