값이 일치하는지에 따라 sheet2에서 sheet1로 복사 sheet1하고 각 값이의 행

이 코드의 목표는 열을 반복 sheet1하고 각 값이의 행 값과 일치하는지 확인하는 것입니다 sheet2. 값이 일치하는 경우, 정보의 5 개 행을 복사 sheet2에 이상 sheet1이 시간에 그 순간에있는 특정 행에.

문제 :

  • if 문이있는 첫 번째 행의 오류 1004
  • 나는 Next b또한 오류를 던질 것이라고 생각한다

VBA 코드 :

For i = 8 To 17
    For b = 7 To 21
        If Sheets("Sheet1").Range(i, 2).Value = Sheets("Sheet2").Range(b, 1).Value Then
        Sheets("Sheet2").Range("b,1:b,7").Copy Sheets("Sheet1").Range(i, 6)
        Next b
        End If
Next i


답변

범위의 행과 열을 숫자로 지정하려면 Cells대신을 사용해야 합니다 Range. 또한 Next b줄이 중첩 된 If명령문 안에 있기 때문에 오류가 발생 합니다. 대신, Exit ForFor 루프를 종료 Next b하고 If명령문 외부로 이동하는 데 사용해야 합니다.

For i = 8 To 17
    For b = 7 To 21
        If Sheets("Sheet1").Cells(i, 2).Value = Sheets("Sheet2").Cells(b, 1).Value Then
            Range(Sheets("Sheet2").Cells(b, 1), Sheets("Sheet2").Cells(b, 7)).Copy Sheets("Sheet1").Cells(i, 6)
            Exit For
        End If
    Next b
Next i