如何检查Excel中的日期单元格是否为空?

Mal*_*lin 8 excel vba date excel-vba is-empty

如果感觉这应该是非常容易的,但是如果不再检索单元格的值,我就不能让它工作.

首先,我有2个日期单元格:

Dim agreedDate As Date
Dim completedDate As Date
Run Code Online (Sandbox Code Playgroud)

这个工作..(但看起来很乱)

agreedDate = Worksheets("Data").Cells(Counter, 7).Value
completedDate = Worksheets("Data").Cells(Counter, 9).Value

If (IsEmpty(Worksheets("Data").Cells(Counter, 7).Value) = True) Or (IsEmpty(Worksheets("Data").Cells(Counter, 9).Value) = True) Then

[.. do stuff]
End If
Run Code Online (Sandbox Code Playgroud)

这不起作用 - 为什么不呢?!

agreedDate = Worksheets("Data").Cells(Counter, 7).Value
completedDate = Worksheets("Data").Cells(Counter, 9).Value

If (IsEmpty(agreedDate) = True) Or IsEmpty(completedDate) = True) Then

[.. do stuff]
End If
Run Code Online (Sandbox Code Playgroud)

有没有办法以干净简单的方式编写if语句?

Exc*_*ero 9

由于只有Variant类型的变量可以为Empty,因此需要对Date类型进行不同的测试.

检查零:

If agreedDate = 0 Or completedDate = 0 Then
Run Code Online (Sandbox Code Playgroud)

但更安全的方法是将变量更改为Variant类型,然后执行此测试:

If IsDate(agreedDate) = False Or IsDate(completedDate) = False Then
Run Code Online (Sandbox Code Playgroud)