在VBA For循环中使用两个以上的范围

所以我试图使用For循环在Excel中的三个单独的列做东西。

Sub dostuff() Dim lRw As Long, C As Range ' Get number of active rows by finding last row index. lRw = Range("A" & Rows.Count).End(xlUp).Row For Each C In Range("B1:B" & lRw, "H1:H" & lRw) ' stuff happens Next End Sub 

这个工作正常,当我只指定一个或两个列范围如上,但是当我尝试添加在第三,它失败:

 For Each C In Range("B1:B" & lRw, "H1:H" & lRw, "M1:M" & lRw) 

有没有什么办法来遍历三列(或更多),而不是两个?

只要做一个联盟来结合你的范围之前,你做你的循环

 Dim loopRange as Range Set loopRange = Union(Range("B1:B" & lRw),Range("H1:H" & lRw),Range("M1:M" & lRw)) For Each C In loopRange 'stuff Next C 
 Sub Tester() Dim c As Range, lRw As Long lRw = 5 For Each c In Range("B1:B" & lRw & ",H1:H" & lRw & ",M1:M" & lRw).Cells Debug.Print c.Address(False, False) Next c End Sub