질문의 기본 성을 용서해주십시오. 그러나 나는 이것이 찾을 수없는 단순하고 순진한 해결책이 있어야한다고 생각합니다.Excel 매크로, 날짜가 과거인지 확인하는 방법?
기본 시나리오는 백업 성공률을 추적하기위한 기업 솔루션으로 사용하는 Excel 통합 문서를 가지고 있으므로 결과적으로 첫 번째 열에 날짜가 포함 된 여러 시트가 있고 일부 작은 매크로 날짜가 과거인지 아닌지에 따라 계산을 수행합니다. (주로이 시트를보고 비어있는 행을 원하지 않는 관리자를 위해 매크로가 적절한 행을 숨기거나 표시하도록합니다.)
어제까지 새해 복 많이 받으 셨습니다. 매크로는 날짜 비교가 아닌 문자열 비교를 수행하기 때문에 가정합니다. (01/01/2013
은 문자열로 볼 때 12/31/2012
보다 작습니다.)
매크로는 기본적으로 VBA의 날짜를 비교할 기본 방법이 있는지 또는 사람 날짜의 날짜를 변환해야하는지 먼저 yyyy/mm/dd
형식으로 입력 한 다음 내 논리를 수행하십시오. (그렇게 할 필요가 있다면 기본적인 방법은 어떨까요? Excel 및 VBA를 가능한 한 자주 피하려고합니다. 따라서 VBA에 관한 한 코딩 기술이 극히 제한적입니다.)
A2
은 스프레드 시트의 새 버전을 사용하여 처음 시작한 셀이며 A454
은 올해 말까지 스프레드 시트를 연장하는 데 마지막으로 귀찮은 날짜입니다.
Sub ShowAll()
Dim cell As Range
For Each cell In Range("A2:A454")
cell.EntireRow.Hidden = False
Next
End Sub
Sub RevealPast()
Dim cell As Range
For Each cell In Range("A2:A454")
If cell.Value < Date Then
cell.EntireRow.Hidden = False
End If
Next
End Sub
Sub HideFuture()
Dim cell As Range
For Each cell In Range("A2:A454")
If cell.Value >= Date Then
cell.EntireRow.Hidden = True
End If
Next
End Sub
같은 문제가 떠오르는 것처럼 보입니다. CDate는 올해의 1 월 날짜가 작년 12 월의 날짜보다 여전히 적은 형식으로 날짜를 변환하는 것으로 보입니다. – HopelessN00b
... 조금 더 설명하고 날짜로 변환하는 셀에 무엇을 가지고 있는지 보여줄 수 있습니까? 일단'cDate'를 사용하면 날짜 비교를하고 있기 때문에 올해의 1 월은 그 이전의 어떤 날짜보다도 커질 것입니다 ... –
아, 제 사과는 결국 효과가 있습니다. 그냥 사용 했어요. 바르게. – HopelessN00b