2

我有一列日期。这些将与行中的其他数据一起合并到对象中,每行一个。

但是,日期列中的某些单元格是空的。在测试时,我创建了一个日期变量并将其值设置为空单元格的值。我将日期的新值添加到 msgbox 中,发现它是“12:00 AM”。VBA 中是否有一个常量来表示这个值,所以我可以做类似的测试:

If myDate = vbNullDate Then
4

3 回答 3

7

我不时遇到这个问题。我通常执行以下操作:

dim d as date
if d = cdate(0) then msgbox "Default value" 
于 2012-06-29T11:50:29.527 回答
3

本地 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
于 2012-06-28T18:19:08.880 回答
1

正如 andy holaday 在问题下方的评论中所说,日期的默认值只是 0。愚蠢的我:/

于 2012-06-28T06:02:19.577 回答