- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
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[],这是什么原因?
最佳答案
Range() 比 Range[] 快
通过实践,我们已经注意到了这种情况。但这里应该定义一个这样说的理由。
当你想引用一个绝对范围时,这个快捷方式很方便。但是,它不如 Range 属性灵活,因为它不能将变量输入处理为字符串或对象引用。所以在一天结束时,您仍然会引用长 方式。尽管矮个子提供了可读性。因此,不妨在第一轮就把它做好,而不需要更多的资源支出。
现在为什么这么慢?编译中。
“在运行时 Excel 总是使用常规符号(或者有人告诉我),因此在编译代码时,快捷符号中的所有引用都必须转换为常规范围形式(或者我被告知). {ie [A150] must be converted to Range("A150") form}. 不管我被告知的真相是什么,Visual Basic 必须记住代码的编译版本和你曾经编写的任何符号您的代码(即代码模块中的任何内容)、文件大小(使用的内存)的工作簿属性因此略有增加。”
如您所见,我的回答更符合 VBA。然而,经过一些研究,有点证明 VBA 端不会减慢速度。所以你只需要处理 C# 端。 @Hans 从 C# 的角度给你一个更好的答案。希望将两者结合起来,您将获得性能出色的代码:)
以下是关于 Excel 中 Range[] 与 Range() 性能的一些发现
关于c# - Range[] 而不是 get_Range(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13759810/
http://msdn.microsoft.com/en-us/library/microsoft.office.tools.excel.worksheet.get_range.aspx它说使用 Ra
我正在尝试从 Excel 中获取范围,其中指定了多个区域,基本上我已经... 整数开始列 int EndColumn int[] ColumnsToSkip 当您将这些组合在一起时,可能会产生一个具有
我正在使用 C# 来操作 Excel 工作表。以下两段代码应该工作相同,但一段有效,另一段抛出异常。我想知道为什么。 这个有效: oRange = (Excel.Range)oSheet.get_Ra
我有以下一段 VSTO 代码,它的行为很奇怪。 string s = "E6:N6,E8:N12,E14:N16,E18:N20,E23:N26,E28:N31,E33:N33,E35:N35,E37
我正在尝试在 Excel C# 中访问另一个范围内的范围,并出现意外行为。在第一个范围内,Cell[1,1].Value 给出了该范围内第一个单元格的值,如预期的那样。但是,在“子范围”中,Cell[
在用 C# 编写的 Excel VSTO 项目中,我需要从单元格的字符串列表中获取 Range 对象。 这是问题的简化版本: string strRange = "A1:A2,A5"; Excel.R
我认为一切都在问题之中。我正在寻找 Pycassa ColumnFamily.get_range() 的 Lazyboy 等效项 - 具有诸如 column_start、column_finish 和
尝试通过逐行引用替换 Cells(RowIndex,ColumnIndex).Value() 调用以提高性能,我在引用结果时永久失败。 以 Excel Interop - Efficiency and
我构建了一个引用 COM 互操作 DLL 的程序集。如果我通过在引用的属性 (VS2010) 中将嵌入互操作类型设置为 True 来嵌入 COM 互操作类型,则在运行时会出现错误“对象不包含 get_
我正在阅读 Python 速成类(class)这本书,但我一直停留在书中给出的示例上。我什至复制-粘贴了书中的脚本,但仍然出现错误。 名为 car.py 的文件 """A class that can
我是一名优秀的程序员,十分优秀!