【发布时间】:2020-06-23 03:44:30
【问题描述】:
我知道这一点;
Arr() =Range("E2:X2500")
...然后用 Arr 做一些事情,然后使用:
Range("E2:X2500")=Arr()
比直接循环和引用单元格更有效(更快)。 这是光速!
但是,这种范围到数组的分配只获取单元格的值。 有没有办法将实际范围(连续或不连续)分配给数组(具有相同的光速),这样您就可以按照引用单元格的方式处理数组项,例如:
arr(23).row 'getting a row number
或者;
If Arr(23).Value ="Pending" then arr(23).font.bold=1 else arr(23).font.bold=0
我知道我可以调暗一个范围类型的数组,其中每个项目都可以存储一个实际的单个单元格范围。但是这个数组不能以同样的方式处理 - 一个班轮分配:
Dim Arr () as Range
Set Arr = Range("E2:X2500") 'error
相反,我需要迭代每个单元格并将其分配给范围类型数组中的下一项,这将允许我以引用单元格的方式处理项目,但是因为我正在处理循环,所以加载时间要长得多。
另外,我如何将范围类型的数组转储回工作表中,并且与单行分配一样容易和有效?我认为唯一的方法是再次使用循环,对吗?
附带问题: Speedwise,通过范围类型数组引用单元格比直接通过工作表引用单元格更好,还是两者基本相同?
谢谢!
【问题讨论】: