이 코드의 목표는 의 열을 반복하여 sheet1
각 값이 의 행에 있는 값과 일치하는지 확인하는 것입니다 sheet2
. 값이 일치하면 sheet2
위에서 부터 sheet1
해당 시점의 특정 행까지 5개의 정보 행을 복사합니다.
문제:
- 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
답변1
범위의 행과 열을 숫자로 지정하려면 Cells
대신 를 사용해야 합니다 Range
. 또한 귀하 Next b
의 줄이 중첩된 문 안에 있기 때문에 오류가 발생합니다 If
. 대신 을 사용하여 Exit For
For 루프를 종료하고 명령문 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