2017-11-27 1 views
0

데이터 세트에서 항목을 삭제하려고합니다. 기본적으로 "B : V 열로 이동하여 매개 변수를 찾아 해당 값이 열에 있으면 행을 삭제하십시오.열 코드의 행을 삭제하십시오.

불행히도이 코드는 작동하지 않으며 이유를 알지 못합니다. .

내가 1 열을 기준으로 루프를 수행 할 코드를 깨는 시도하지만, 그 코드가 완료 될 때까지 긴에 길을 가고 있었다, 나는 빨리 자신의 데이터를 삭제 할 수 있었다.

어떤 생각을?

Sub SellThrough_dataManip() 
    Dim rCell As Range 
    Dim strAddress As String 

    Application.ScreenUpdating = False 

    With ActiveSheet.Columns("B:V") 
     Set rCell = .Find(What:="Check" & "CNL" & "TENA" & "cancelled" & "N" & "Z" & "R" & "Y" & "Club" & "#N/A", LookIn:=xlValues, SearchOrder:=xlByColumns) 

     If Not rCell Is Nothing Then 
      Do 
       strAddress = rCell.Address 
       rCell.EntireRow.Delete 
       Set rCell = .FindNext(Range(strAddress)) 
      Loop Until rCell Is Nothing 
     End If 

    End With 

End Sub 
+1

이동 명령, 결과 코드 편집 – jsotola

+0

열 "b"안에 "check" "tena" "cancelled"등의 단어를 찾고 그 안에 단어가있는 행을 삭제하려고합니다. –

답변

0

삭제할 범위를 구축해보세요. 하나의 루프에서 에드 후 삭제 모든 것을 ... 난 당신이 ... 그것을 발견 찾기를하는 매크로를 기록 할 것이라는 점을 의심 당신이 단어를 "CheckCNLTENAcancelledNZRYClub # N/A"를 검색

Sub SellThrough_dataManip() 
    Dim rCell As Range, DelRng As Range 
    Dim FirstAddress As String 

    Application.ScreenUpdating = False 

    With ActiveSheet.Columns("B:V") 
     Set rCell = .Find(What:="Check" & "CNL" & "TENA" & "cancelled" & "N" & "Z" & "R" & "Y" & "Club" & "#N/A", LookIn:=xlValues, SearchOrder:=xlByColumns) 

     If Not rCell Is Nothing Then 
      FirstAddress = rCell.Address 
      Do 
       If DelRng Is Nothing Then 
        Set DelRng = rCell 
       Else 
        Set DelRng = Union(DelRng, rCell) 
       End If 
       Set rCell = .FindNext(rCell) 
      Loop While Not rCell.Address = FirstAddress 
     End If 
    End With 
    If Not DelRng Is Nothing Then DelRng.EntireRow.Delete 
End Sub 
+0

아니,이 작동하지 않습니다 : ( –

+0

jsotola의 의견을보고 나면 해당 단어를 찾으려고합니까? 그렇다면 '찾기'가 그런 식으로 작동하지 않습니다. – Tom

관련 문제