忽略日期时间单元格中的时间 Excel

Ignore Time From DateTime Cell In Excel

我正在使用 VBA 来捕获输入到单元格中的日期。我遇到的问题是,如果单元格为空,VBA 会将其读取为 12:00:00 AM,因此我在 VBA 中的 ISDATE() 函数将其视为日期,但代码自此爆炸这不是实际日期。什么 VBA 语法可以实际检查以验证单元格是否包含日期?

这是我当前的语法

Sub IsDate()
Dim d1 As Date

d1 = CDate(Range("A1").Value)

If IsEmpty(Range("A1")) = False Then
  If IsDate(d1) = True Then
        'Continue
  End If
End If

IsEmpty(Range("A1")) 使用 Range("A1").Value <> "" 会给你不一致的结果。

不要在内置 VBA 方法后命名子例程例如 Sub IsDate() 将覆盖 VBA 方法并造成严重破坏。

Sub TestIsDate()

    Dim d1 As Date
    If Range("A1").Value <> "" And IsDate(Range("A1").Value) Then
        d1 = CDate(Range("A1").Value)
    End If

End Sub