2017-01-04 1 views
1

Excel의 csv 파일이 해당 열의 ~ CU입니다.오늘 날짜 이전에 VBA 행을 삭제합니다.

행이 계속 업데이트됩니다 (현재는 2606).

나는 열 D

  • 에 오늘 날짜에 대한 입력/텍스트 상자/인간의 입력을 기록하지 않기 때문에 before today's date을 모든 행을 삭제

    1. 에 노력하고있어.

    날짜 (통화)에 대한 enter image description here

    Sub deleterows() 
    lastrow = Cells(Rows.Count, 4).End(xlUp).Row 
    For i = lastrow To 2 Step -1 
        If Cells(i, 4).Value < *numeric value* Then Rows(i).EntireRow.Delete 
    Next i 
    End Sub 
    
  • +0

    '* 숫자 값 *'을'날짜'로 대체하십시오. – Comintern

    +0

    @Comintern 답장을 보내 주셔서 감사합니다! 어떻게하면 레코드의 마지막 날짜로 설정할 수 있습니까 ?? –

    +0

    "오늘 날짜 이전"이 아닌 "오늘 날짜 이전"을 의미합니까? 그렇다면 "오늘 날짜"란 무엇을 의미합니까? – Comintern

    답변

    6

    는 그 항상 Value2 대신 Value를 사용하는 것이 좋습니다.

    MSDN :이 속성과 Value 속성 사이

    유일한 차이점은 값 2 속성은 통화 및 날짜 데이터 형식을 사용하지 않는 입니다. Double 데이터 형식을 사용하여 이러한 데이터 형식으로 포맷 된 값을 부동 소수점 숫자로 반환 할 수 있습니다.

    그래서 당신이해야 할 모든이 부분이 If Cells(i, 4).Value2 < Date Then

    If Cells(i, 4).Value < *numeric value* Then

    을 변경하고 열 D 오늘보다 오래된 경우는 true로 평가합니다.

    +0

    안녕하세요, 후속 조치로 코드를 실행하면 파일의 첫 번째 행을 제외한 모든 항목이 삭제됩니다. –

    +1

    ur 스크린 샷을 보면 모든 날짜가 오늘보다 오래되었으므로 행이 삭제됩니다. 오늘이나 그 이후의 날짜가 있습니까? – cyboashu

    +0

    1/3/2017은 최신 날짜입니다! 또한 \t B \t \t 1/2016 \t \t 내가 코드를 실행하기 위해 얻은 것은 파일의 첫 번째 행입니다. –

    관련 문제