VBA Excel迭代多个范围

时间:2017-11-01 00:54:16

标签: excel vba excel-vba

目前我正在以repittative方式编写代码,但我现在想如何在多个范围内使用循环来实现相同的结果。

如果我在For Each中放入两个范围,我会收到错误。

Sub test_Click()

If (Range("C3").Value <> Range("C6").Value) Then
    Range("B3").Value = 5

End If

If (Range("D3").Value <> Range("D6").Value) Then
    Range("C3").Value = 5

End If


If (Range("E3").Value <> Range("E6").Value) Then
    Range("D3").Value = 5

End If

End Sub

2 个答案:

答案 0 :(得分:3)

您没有理由在For Each声明中收到错误。 (但是,再一次,我不明白你的意思&#34;如果我把两个范围放入For Each&#34;。)

Sub test_Click()
    Dim cel As Range
    For Each cel in Range("C3:E3").Cells
        If cel.Value <> cel.Offset(3, 0).Value Then
            cel.Offset(0, -1).Value = 5
        End If
    Next        
End Sub

答案 1 :(得分:1)

可以使用for循环

中的offset命令完成
For i = 0 To 3
    If (Range("C3").Offset(0, i).Value <> Range("C6").Offset(0, i).Value) Then
        Range("B3").Offset(0, i).Value = 5 
    End If
Next