VBA 在行中循環遍歷的例子

在單元格區域對象中循環:
For Each c In Range("$A$2:$A$" & Cells(Rows.count, "A").End(xlUp).row
    ‘do something
Next c

基於上述代碼運行後,你會發現,少量數據處理上還行,但大量數據之後,電腦卡慢,用時較長等缺點就出來了。
那要如何操作才能既快速,又能按行的要求進行循環遍歷呢?

答案是:使用數組替代對象,然後在數組中循環。

 

使用將單元格區域對象的值裝入數組,在數組中循環:

Dim i As Long
Dim varray As Variant
varray = Range("A2:A" & Cells(Rows.Count, "A").End(xlUp).Row).Value
For i = 1 To UBound(varray, 1)
    ' do something
Next

 

下面是一個完整的例子,此示例僅在列A中符合條件的每個行之後插入一行。在行中,從A2開始,插入期間將+2”添加到變量i中。如果我們用A1啓動我們的數組,它將爲+1。

Sub test()
Dim varray As Variant
Dim i As Long
varray = Range("A2:A10").Value
'必須倒序循環
For i = UBound(varray, 1) To LBound(varray, 1) Step -1
    '此處放置你自己的條件判斷代碼等
    If varray(i, 1) = "moo" Then
            Range("A" & i + 2).EntireRow.Insert
    End If
Next
End Sub

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章