首页 > 解决方案 > 检查当前行单元格日期是否在过去

问题描述

我目前正在尝试访问循环中的大量行以检查 END DATE(在 C 列中)是否在过去。

如果结束日期是过去,我想检查列 M 是否包含字符串“取消”,如果不包含,我想在移动到下一行之前将“取消”写入列 M。

标签: excelvba

解决方案


可能有几种方法可以解决这个问题,但是这个宏应该查看列中的每个值(如果到达空白单元格,宏就会停止)并检查它是否小于系统日期。如果日期更短,它会将值“取消”分配给同一行 M 列中的单元格。

Sub checkDate()
    Dim x As Integer
    x = 1 'Starts on row one.
    With ThisWorkbook.Worksheets("Sheet1")
        Do While .Range("C" & x).Value <> "" 'Checks each row in Column C until it reaches an empty row. Could be replaced with a For statement.
            If .Range("C" & x).Value < Date Then
                .Range("M" & x).Value = "Cancel"
            End If
            x = x + 1
        Loop
    End With
End Sub

推荐阅读