나는 Excel VBA에 익숙하며 실제로 도움이 될 수 있습니다. 웹에서 솔루션을 검색했지만 유사한 문제를 찾을 수 없었습니다.엑셀 vba 기준까지 행을 삭제
특정 기준에 따라 행을 삭제하고 다른 특정 기준이 충족 될 때까지 행을 삭제하는 데 도움이되는 매크로를 만들려고합니다.
예를 들면. 아래 표에서 나는 골 A = 1 골 C <> 0
A | B | C
-----|-----|-----
1 | TC | 2
-----|-----|-----
2 | TC | 1
-----|-----|-----
1 | TC | 0
-----|-----|-----
2 | TC | 2
-----|-----|-----
3 | TC | 1
-----|-----|-----
1 | TC | 2
-----|-----|-----
1 | TC | 0
-----|-----|-----
1 | TC | 1
-----|-----|-----
2 | TC | 0
-----|-----|-----
3 | TC | 2
UNTIL 골 A = 1
및 골 C = 0, 다음 해당 행
아래 행을 삭제 계속 행을 삭제하려면 그래서 매크로의 최종 결과가 될 것이다 : 이상적
A | B | C
-----|-----|-----
1 | TC | 2
-----|-----|-----
2 | TC | 1
-----|-----|-----
1 | TC | 2
-----|-----|-----
1 | TC | 1
-----|-----|-----
2 | TC | 0
-----|-----|-----
3 | TC | 2
, I이 다시까지 해당 행의 다음 행의 행을 삭제 여기서 골 A = 2 골 C = 0 및 삭제와 루프 싶습니다 Col A = 2 및 Col C <> 0
다음은 내가 언급 한 매크로입니다. 모든 제안에 열리고 배우기를 열망합니다.
Sub deleterow()
Range("C2").Select
Do Until ActiveCell.Offset(0, -2) = "1" And ActiveCell.Value <> "0"
If ActiveCell.Value = "0" And ActiveCell.Offset(0, -2) = "1" Then
Rows(ActiveCell.Row & ":" & Rows.Count).Delete
End If
Loop
End Sub
답글을 기다리십시오!
감사합니다.
사과로 사전에 나는 이것에 아주 새롭다. 위의 코드를 적용하려고했지만 작동하지 않는 것 같습니다. 귀하의 코드를 검토 중이며 이해할 수 있는지 잘 모르겠습니다. 코드의 개념을 이해할 수는 있지만 특정 행을 파악할 수는 없습니다. 왜 "rng가 설정되지 않았다면 ..."? "rng이 설정되지 않은 경우라면"이어야하지 않습니까? 그리고 나는 "rng = Union (rng, new_rng)"이라는 줄을 이해하지 못합니다. rng가 자신과 새로운 rng의 동맹과 어떻게 동등한 관계가 가능합니까? –
또한이 특정 문제에 대해 필터 및 삭제 방법이 어떻게 작동하는지 잘 모르겠습니다. 매크로는 기준이 충족 될 때까지 계속 삭제해야하기 때문입니다. 그러나, 나는 그것이 작동하는 한 모든 솔루션에 열려 있습니다. –
연합은'Range ("B1 : B5", "C42 : C65", "Z300")'와 같이 인접하지 않은 범위를 만드는 데 사용되므로 delete를 사용하여 모든 것을 한 번 삭제할 수 있습니다. 삭제 작업이 느리기 때문에 한 번 삭제하면 해당 작업을 수행하는 데 걸리는 시간을 최적화 할 수 있습니다. 그리고'rng is Nothing Then Set rng = ws.Range ("A"& i)'는 Union을 사용하는데, 왜냐하면 2 개의 범위가 없으면 Union은 에러를 내기 때문입니다. 첫 번째 범위 (rng가 비어 있거나 아무것도없는 경우)는'rng = new_rng = ws.Range ("A"& i)' – danieltakeshi