gpt4 book ai didi

c# - Range[] 而不是 get_Range()

转载 作者:太空狗 更新时间:2023-10-29 20:13:59 28 4
gpt4 key购买 nike

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() 性能的一些发现

enter image description here

关于c# - Range[] 而不是 get_Range(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13759810/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com