2014-10-03 3 views
1

셀의 값 (항상 숫자)을 for 루프의 반복 변수와 비교하려고하지만 vba가 잘못된 호출 또는 인수라고합니다. 나는 vba를 처음 사용하기 때문에 어떤 도움을 주시면 대단히 감사하겠습니다.VBA의 셀 값 비교

For i = 2 To wb1.Sheets("Development Priority List").Rows.Count 

If wb1.Sheets("Development Priority List").Cells("A" & i).Value < i - 1 Then 
    wb1.Sheets("Development Priority List").Range("A" & i, "Z" & i).Delete 
End If 

Next i 
+0

아래에서 언급 한 @ jbarker2160 외에. 한 가지 더 있습니다. 역순으로 행을 삭제해야합니다. 그렇지 않으면 행을 놓치게됩니다. Se [이] (http://stackoverflow.com/questions/26176185/how-to-deleterows-based-on-condition-in-vba) 그리고 한 가지 더 중요한 포인트. '.Rows.Count'를 사용하고 있습니다. 즉, 워크 시트의 모든 행을 반복합니다. 왜 그렇게하고 싶습니까? 나는 [이] (http://stackoverflow.com/questions/11169445/error-finding-last-used-cell-in-vba)를 사용하여 lastrow를 찾은 다음 해당 행까지만 반복하는 것이 좋습니다. –

+0

또 다른 포인트 : 루핑하는 대신'.Autofilter'를 사용할 수 있습니다 ... 훨씬 더 빨라질 것입니다 ... :) –

답변

2

IF 문이 잘못되었습니다. 변경 :

If wb1.Sheets("Development Priority List").Cells(i,1).Value < i - 1 Then 
+0

+1 당신은 저를 때려줍니다 : –

+0

또는'.Cells'를'.Range'로 대체하십시오 –