2016-06-06 5 views
0

실제 최소값을 나타내지 않는 행을 삭제하려면이 코드를 사용하는 데 문제가 있습니다. 그것은 단순히 작동하지 않습니다, 나는 손으로 논리를 확인했습니다. 내가 확인하려고하는 것은 행 1, 열 2의 셀 값이 행 2, 열 2보다 큰 경우입니다. 그렇다면 행 1을 완전히 삭제하십시오. 나는 이것들과 유사하게 반복되는 예제를 발견했지만, 셀 값을 논리 문장과 비교하기보다는 특정 문자열 값을 찾는다. 올바른 워크 시트를 참조하는지 확인하고 삭제 기능이 작동하는 방식을 이해했는지 확인했습니다. 또한 LRow - 1 대신 LRow + 1 코드를 테스트했습니다. 내가 도대체 ​​뭘 잘못하고있는 겁니까?인접 셀 값을 기반으로 행 삭제 - VBA

다음은 몇 가지 샘플 데이터입니다. 내가 원하는 모든 데이터에 남아있을이 경우

11804.6875 
6415.625095 
6333.593845 
3786.718845 
11841.40682 

11804.6875 
3786.718845 
11841.40682 

시간 앞서 주셔서 감사합니다

입니다!

+0

'올바른 worksheet'를 참조하고 있지만'with'를 사용할 때 당신은'cells' 전에'.' 잊지하지 않을 때는 확실합니다. – findwindow

+1

'LRow = 셀 (행 번호, 2) .End (xlUp) .Row에 대해'LRow = 셀 (행 번호, 2). 끝 (xlUp) 셀에 (7, 2) 7 단계 -1' –

+0

아, 뭔가 작은 것이 그렇게 큰 차이를 만듭니다. @findwindow와 Scott 감사합니다! VBA 코딩에 대해 더 자세히 배우려고 할 때'.'의 차이점은 무엇입니까? –

답변

0

가 말했듯이 ...

Sub rowdelete() 
    Dim LRow As Long 
    With Worksheets("Sheet1") 
     For LRow = .Cells(Rows.Count, 2).End(xlUp).Row To Cells(7, 2).Row Step -1 
      If .Cells(LRow, 2) > .Cells(LRow - 1, 2) And (.Cells(LRow, 2) < 10000) Then 
       .Rows(LRow).EntireRow.Delete 
      End If 
     Next LRow 
    End With 
End Sub 
+0

'To Cells (7, 2) .Row'는 Scott의 코멘트를 놓쳤습니다. – findwindow

+0

아 ~ 네 ... 그냥 건너 뛰고 실제 행 번호로 바꿀 수 있습니다. – dbmitch

관련 문제