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


0

이 코드의 목표는 열을 반복 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

답변:


0

범위의 행과 열을 숫자로 지정하려면 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

이것은 내가 찾고있는 것에 가깝지만 꽤는 아닙니다! Exit for 루프의 용도는 무엇입니까? 내가 지금 작성한 코드 아래에 1004 런타임 오류가 발생합니다.
Dakota
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.