我有一列日期。这些将与行中的其他数据一起合并到对象中,每行一个。
但是,日期列中的某些单元格是空的。在测试时,我创建了一个日期变量并将其值设置为空单元格的值。我将日期的新值添加到 msgbox 中,发现它是“12:00 AM”。VBA 中是否有一个常量来表示这个值,所以我可以做类似的测试:
If myDate = vbNullDate Then
我有一列日期。这些将与行中的其他数据一起合并到对象中,每行一个。
但是,日期列中的某些单元格是空的。在测试时,我创建了一个日期变量并将其值设置为空单元格的值。我将日期的新值添加到 msgbox 中,发现它是“12:00 AM”。VBA 中是否有一个常量来表示这个值,所以我可以做类似的测试:
If myDate = vbNullDate Then
我不时遇到这个问题。我通常执行以下操作:
dim d as date
if d = cdate(0) then msgbox "Default value"
本地 Date 变量的默认值似乎是:
Saturday, December 30, 1899 12:00:00 AM
基于此程序:
Sub testdate()
Dim d As Date
Debug.Print Format$(d, "Long Date") & " " & Format$(d, "Long Time")
End Sub
要检查任何变量类型的默认值,只需声明该类型的变量,然后打印它的值。
Sub testint()
Dim d As Integer
Debug.Print d
End Sub
正如 andy holaday 在问题下方的评论中所说,日期的默认值只是 0。愚蠢的我:/