范围[]而不是get_Range()

Syl*_*lca 7 c# methods excel properties

http://msdn.microsoft.com/en-us/library/microsoft.office.tools.excel.worksheet.get_range.aspx它表示使用Range属性而不是get_Range(Object Cell1,Object Cell2).

他们都在做同样的事情,获取一个表示一个单元格或一系列单元格的Microsoft.Office.Interop.Excel.Range对象.那么,除了这是一种方法而另一种是属性之外,有什么区别?他们为什么指向使用Range [],原因是什么?

bon*_*igo 6

Range()比Range []快

通过实践,我们已经注意到了这种情况.但这里应该说明理由.

当您想要引用绝对范围时,此快捷方式很方便.但是,它不像Rangeproperty那样灵活,因为它不能将变量输入作为字符串或对象引用处理.因此,在一天结束时,你仍然会走很长的路.虽然短小提供了可读性.因此,如果没有更多的资源支出,第一轮也可以做到正确.

现在为什么慢?在编译中.

"在运行期间,Excel总是使用常规符号(或者我已经被告知),所以在编译代码时,快捷符号中的所有引用都必须转换为传统的范围形式(或者我已经被告知).{即[A150]必须转换为Range("A150")形式}.无论我被告知的事实如何,Visual Basic必须记住其编译版本的代码以及用于编写代码的任何符号(即代码模块中的任何内容),文件大小(使用的内存)的工作簿属性因此略有上升."

如你所见,我的答案更符合VBA.然而经过一些研究证明,VBA方面没有做太多的减速.所以你只需要照顾C#方面.@Hans在C#透视图中为您提供了更好的答案.希望结合两者,你将得到一个伟大的表现代码:)

以下是Excel中Range []与Range()性能的一些发现

在此输入图像描述