2017-11-01 1 views
0

현재 코드를 반복적으로 작성하고 있지만 이제는 동일한 결과를 얻으려면 여러 범위의 루프를 어떻게 사용할 수 있습니까?여러 범위에서 VBA Excel 반복 반복

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 

답변

3

For Each 문에 오류가 발생하는 이유는 없습니다. (그러나, 다시, 나는 당신이 "나는 각각의 경우에 두 개의 범위를 넣으면"무슨 뜻인지 이해하지 않습니다.)

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 
+0

'Range ("C3 : E3")를 추가하면 좋겠네요. 그렇지 않으면 Excel이'Cells '을 반복하는 법을 모르겠습니다;) JK –

+0

@ShaiRado'.Cells '셀 안에 행 ("1:10") (한 번에 한 셀 씩 행을 한 번에 처리하는 것이 기본값 인 곳)과 같은 것을 할 때 실수로 그것을 포함하는 것을 잊지 않도록합니다. . 그래서 ** 나의 광기에 ** 어떤 ** 방법이 있습니다! :디 – YowE3K

1

for 루프에서 오프셋 명령을 수행 할 수

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