我在函数中有一堆循环,它们循环遍历一个我定义为动态范围的数组。下面是我想达到将范围放入数组以获得更高效的循环
Dim myArray As Range
myArray(x, j) 'So the array loops through each column and then each row in that column
For i = 1 to lastRow
If myArray(x, j).Value = myArray(x, i).Value Then
'Do something
我有一堆这些回路的一些伪代码,它是与100+行的数据集超慢。基本上无论在哪里,我都将myArray定义为Range,我想将其更改为Variant,以便我可以a)遍历数组,并b)使用该数组检查值是否相同,而不是检查范围,这可能是性能问题的根本原因时,有200行* 500列
编辑
我如何转换动态定义的范围到一个数组?
我需要做这样的事吗?
lastRow = UBound(myArray, 1)
lastColumn = UBound(myArray, 2)
然后
If myArray(x, j) = myArray(x, i) Then
'Do something
那么你的问题是什么?并意识到“我怎么能做到这一点?”太宽泛了。 –
@ScottCraner公平点,给我一秒钟,我会添加更多的代码来澄清 – MJ95