2012-10-03 2 views
0

몇 가지 조건으로 숫자 배열을 채우고이 영역에있는 모든 행을 삭제하려고합니다.숫자 배열을 기반으로 VBA를 사용하여 Excel에서 여러 행을 삭제하십시오.

기본적으로 나는 열을 거치며이 행의 셀이 조건과 일치하면 해당 행 번호를 배열에 추가합니다. 모든 행을 거친 후에 모든 행 번호를 삭제하려고합니다.

한 번에 모든 행을 삭제하는 방법을 알아내는 데 어려움을 겪고 있습니다. 행 번호가 이전 또는 삭제 된 행에 따라 하나씩 삭제되면 분명히 삭제되기 때문입니다. 이 때문에 모든 행을 함께 선택한 다음 모든 행에서 한 번에 삭제 명령을 호출하기를 원합니다. 어떤 아이디어?

+1

필요 해당 행을 나타내는 삭제합니다. –

+0

자동 필터를 사용하여 기준에 따라 행을 필터링 한 다음 특수 셀을 사용하여 한 번의 히트에서 숨겨진 행을 삭제합니다. – Reafidy

답변

3

행을 거꾸로 반복합니다. 같은

뭔가 :

Sub tester() 

    'setting ScreenUpdating false makes this go faster... 
    Application.ScreenUpdating = False 
    Dim i As Integer 
    'go through all rows starting at last row 
    For i = Range("A1:E5").Rows.Count To 1 Step -1 
     'check if you need to delete them (you will want to update this) 
     If Cells(i, 1).Value = "Delete this row!" Then 
      Rows(i).Delete 
     End If 

    Next i 


Application.ScreenUpdating = True 
End Sub 
7
Sub Tester() 
Dim arr 
    arr = Array(3, 5, 7, 9) 
    ActiveSheet.Range("A" & Join(arr, ",A")).EntireRow.Delete 
End Sub 
+0

아름다움의 작품! – user3357963

1

다음은 간단한 하나 : 당신이 행을 가서 그냥 숨겨진 컬럼에 값을 저장할 수

If Range("B1") <> "" Then ' Range that bears the array of cell.addresses.... 

    ar = Array(Range(Range("B1").Cells)) 

    For Each a In ar 
     a.EntireRow.ClearContents 
    Next 

    Range("B1").ClearContents 
End If 
관련 문제