2013-07-22 1 views
1

스프레드 시트를 만들고 특정 기간에 행이 자동으로 삭제되도록하고 싶습니다. 이것을 할 수있는 방법이 있습니까? 저희 회사는 NY 사무실에 공학 요청서를 제출하고 제출 자료 제출부터 계획 수령까지의 시간을 모니터링하는 취업 알선 업체를 만들었습니다. 내 상사는 특정 기간 후에 데이터 행이 떨어지는 방법을 파악할 수 있다면 그것을 좋아할 것입니다. 나는 하루 수를 계산하고 새로운 작업을 추가하여 자동으로 업데이트하는 모든 수식을 얻었지만이 작업을 수행하는 방법을 모르겠습니다. 입력 해 주셔서 감사합니다.나이에 따라 특정 행을 자동으로 삭제하려고합니다.

답변

0

아래 코드와 같은 것이 트릭을 수행해야합니다. 이 예에서는 2 행부터 시작하여 F 열의 날짜를 확인하여 정의 된 기간 (21 일)보다 오래되었는지를 확인하고 필요에 따라이 변수의 초기화를 변경할 수 있습니다.

Sub delete_old() 

    Dim rowDate 
    Dim curDate 
    Dim interval 
    Dim curAdd 
    Dim vCell As Range 

    ' set interval to an appropriate no of days 
    interval = 21 ' can be more precise e.g. for 5 mins: (1/24)/12 
    curDate = Now() 

    ' assuming we want to start from row 2 and that date is in column F 
    Set vCell = Range("F2") 

    ' Set Do loop to stop when an empty cell is reached. 
    Do Until IsEmpty(vCell) 
     curAdd = vCell.Address 
     If curDate - vCell.Value >= interval Then 
      vCell.EntireRow.Delete 
      Set vCell = Range(curAdd) 
     Else 
      Set vCell = Range(curAdd).Offset(1, 0) ' next row 
     End If 
    Loop 

    Set vCell = Nothing 

End Sub 

통합 문서를 저장하거나 열 때와 같은 이벤트가 발생하면 자동으로이 기능을 호출해야합니다. 위의 코드 또는 위의 코드에 대한 설명을 설정하는 데 도움이 필요하면 알려주십시오.

관련 문제