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