2016-09-12 3 views
-1

범위가 5k 정도이므로 특정 텍스트가있는 셀을 제거하고 싶습니다. I.E. 그리고, a, is, that, or, with, 등등. 이것에 대한 방법이 있습니까? 도와주세요.범위의 특정 텍스트가있는 셀 삭제

[A2].Select 
Range("A2", Selection.End(xlDown)).Select 

Dim crnge As Range 
Dim wdelim 
Dim rdelim 

wdelim = Split("on,the,this,in,at,of,for,what,w,all,on,with", ",") 

Set crnge = Selection 

For Each rdelim In wdelim 
    crnge.wdelim.Select 
    .Delete (xlUp) 
Next 

나는이 코드가 작동하지 않는다는 것을 알고있다. 이것은 내가하려는 것이지만 어떻게해야할지 모르겠다.

+0

셀을 삭제하거나 내용을 삭제 하시겠습니까? –

+0

셀을 삭제하고 위로 이동하십시오. 나는 실제로'Split' 옵션을 생각하고'For' 문으로 반복하지만, 어떻게해야하는지 잘 모르겠습니다. – Marco

답변

1

여기 배열의 각 요소에 대한 데이터를 필터링하고 보이는 셀의 전체 행을 모두 삭제합니다.

Sub DeleteFilteredRows() 
    Dim v 
    With Application 
     .ScreenUpdating = False 
     .Calculation = xlCalculationManual 
    End With 

    For Each v In Split("on,the,this,in,at,of,for,what,w,all,on,with", ",") 
     With Range("A1").CurrentRegion 
      On Error Resume Next 
      'If you want all rows that have any of this phrases anywhere in 
      'the cell use: Criteria1:="=*" & v & "*"        

      .AutoFilter Field:=1, Criteria1:="=" & v , Operator:=xlAnd 
      .Offset(1).SpecialCells(xlCellTypeVisible).EntireRow.Delete 
      On Error GoTo 0 
      .AutoFilter 

     End With 

    Next 

    With Application 
     .ScreenUpdating = True 
     .Calculation = xlCalculationAutomatic 
    End With 
End Sub 
+0

테스트 해 보셨습니까? 내 데이터로 테스트 해봤는데 'Split'내부 요소 중 하나가 누락 된 경우 (즉, 'this'가없는 항목) 오류가 반환되었습니다. –

+0

테스트를 거쳤지 만 다시 확인할 수 있습니까? [Download DeleteFilteredRows.xlsm] (https://www.dropbox.com/s/a2xu8wrolkkfmt5/DeleteFilteredRows.xlsm?dl=0) –

+0

파일에 모든 사례가 있으며 "this"또는 "in" 그리고 오류가 발생했습니다. (On Error Resume Next는 이것을 포획하지 않습니다.) –

관련 문제