VBA循环比较多个值

时间:2017-03-13 20:29:06

标签: excel-vba loops vba excel

我创建了一个嵌套的for循环来比较2张中的3个不同的单元格值。当数据很小时,循环工作正常,但是当我在5000行上运行时,它太慢并且崩溃了。知道如何更有效地运行它。

find . -type d -name 'RUN*' | while read -r dir; do
    awk '{print $0, FILENAME}' "$dir"/mod* \
    | sort -k4 -g | head -1
done

1 个答案:

答案 0 :(得分:1)

读取和写入单元格是Excel VBA中可以执行的最慢操作之一。相反,您应该将工作表中包含的值放入数组并在那里使用它们,这是一个很好的参考:http://www.cpearson.com/excel/ArraysAndRanges.aspx。使用您的NumRows变量以及列字母或数字来定义构成数组的范围,例如:

myRange = Range("A1:C" & NumRows)
myArray = myRange.value

从Chip Pearsons网站的链接:

Dim Arr() As Variant
Arr = Range("A1:B10")
Dim R As Long
Dim C As Long
For R = 1 To UBound(Arr, 1) ' First array dimension is rows.
    For C = 1 To UBound(Arr, 2) ' Second array dimension is columns.
        Debug.Print Arr(R, C)
    Next C
Next R