범위의 모든 셀을 검색하는 코드를 작성하고 있습니다. 2 자 이하의 값 (예 : "12" "ab")을 모두 찾은 다음 해당 셀을 삭제하고 싶습니다. 나는 일종의 일을하지만, VBA 코드는 매우 느리게 실행되며 실행 당 1 열만 작동합니다.VBA의 루프에 문제가 있습니다.
Sub test2()
Dim i As Integer
Dim j As Integer
For i = 1 To 524
For j = 1 To 12
If Len(Cells(i, j)) <= 2 Then
Cells(i, j).Delete Shift:=xlToLeft
End If
Next j
Next i
End Sub
이 범위이므로 '설정 R = 범위 (l524 "A1)을 사용하여 (r.value) <= 2 then cell.delete' –
열 단위로 작업 한 다음 행 단위로 작업한다는 점에 주목하십시오. 행 524에서 코드가 끝나면 다른 열로 이동하지 않습니다. 그것은'for each row..for each row ... for for 루프'타입 루프입니다. – Dave
셀을 삭제하고 왼쪽으로 이동하면 오른쪽 열의 셀이 그 위치로 이동합니다. 이것은 코드가 이미 I/J 좌표에서 셀을 "처리"했으므로 셀을 스캔하지 않는다는 것을 의미합니다. –