5

バックアップの成功を追跡するための Excel ワークブックがあります。最初の列に日付を含むシートがいくつかあり、日付が過去かどうかに基づいて計算を行うマクロがあります。(マクロは、適切な行を非表示または表示します。)

これは昨日まで機能していました。マクロが日付比較ではなく文字列比較を行っているためだと思います。(文字列として見ると、"01/01/2013" は "12/31/2012" よりも小さくなります。)

VBAで日付を比較するネイティブな方法はありますか、または最初に日付を「yyyy/mm/dd」に変換する必要がありますか(方法はいいでしょう)。

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
4

3 に答える 3