2016-09-26 3 views
0

제 A 열에는 서식이 지정된 날짜와 일반 서식으로 구성된 셀이 있습니다. 날짜가 아닌 행을 삭제하고 싶습니다.이 코드를 만들었지 만 여러 번 실행하여 날짜가 아닌 모든 행을 삭제해야합니다.날짜로 서식이 지정되지 않은 행을 삭제하십시오.

My column is like the one showed in the picture

코드 : 사전에

Sub del_row_not_date() 

Dim rng_A_last As Long 
Dim i As Integer 

rng_A_last = Sheet1.Cells(Sheet1.Rows.Count, "A").End(xlUp).Row 
Debug.Print rng_A_last 

For i = 1 To rng_A_last Step 1 
    If IsDate(Sheet1.Cells(i, 1)) = False Then 
     Sheet1.Cells(i, 1).EntireRow.Delete 
    End If 
Next 
End Sub 

감사합니다!

답변

0

행 이후

이 결과는 LINK입니다. 이 :

조건에 따라 행 삭제에 대한 팁 상단에서 시작하여 아래로 작업 할 때마다 행을 삭제할 때마다 카운터가 삭제 된 행 아래 두 행의 셀로 효과적으로 이동합니다. 삭제 된 행 아래 위로 이동합니다 (즉, 전혀 테스트되지 않음).

이 작동 :)

Sub del_row_not_date() 

Dim rng_A_last As Long 
Dim i As Integer 

rng_A_last = Sheet1.Cells(Sheet1.Rows.Count, "A").End(xlUp).Row 
Debug.Print rng_A_last 

For i = rng_A_last To 1 Step -1 
    'Debug.Print Cells(i, 1).Value 
    If IsDate(Sheet1.Cells(i, 1)) = False Then 
     Sheet1.Cells(i, 1).EntireRow.Delete 
    End If 
Next 
End Sub 
+0

정확하게 제가 답변 코드 # 2에서 지적한 바입니다. 그러나 귀하의 날짜가 열 "A"의 유일한 숫자 인 경우 내 대답 코드 # 1이 훨씬 빠르고 (더 빠르고 더 짧습니다) – user3598756

0

당신은 위의 모든 열 "A"하지-번호 세포는 날짜가 다음없는 사용 번호로 세포가있는 경우 전체 행

을 삭제하는 것을

Sub del_row_not_date() 
    With Sheet1 
     .Range("A1", .Cells(.Rows.Count, "A").End(xlUp)).SpecialCells(xlCellTypeConstants, xlTextValues).EntireRow.Delete 
    End With 
End Sub 

을 시도 할 수 :

Option Explicit 

Sub del_row_not_date() 
    Dim i As Integer 

    With Sheet1 
     For i = .Cells(.Rows.Count, "A").End(xlUp).Row To 1 Step -1 '<--| loop backwards not to loose next row index after deleting the current one 
      If Not IsDate(.Cells(i, 1)) Then .Cells(i, 1).EntireRow.Delete 
     Next i 
    End With 
End Sub 
+0

덕분에, 나중에 그것을 시도하고 그것을 언급 할 것이다! – Grohl

+0

당신은 오신 것을 환영합니다. 귀하의 의견을 기다리면서 대답을 더욱 향상시킬 수 있습니다. 코드 # 2가 실제로 귀하의 질문을 해결하는 동안 답변을 승인 된 것으로 표시하십시오. 감사합니다. – user3598756

관련 문제