2012-06-28 2 views
2

У меня есть столбец дат. Они будут включены в объекты, по одному на строку, вместе с другими данными в строке.Есть ли const для значения по умолчанию типа переменной Date, a la vbNullString для типа строки?

Однако некоторые ячейки в столбце даты пусты. Когда я тестирую, я создаю переменную date и устанавливаю ее значение как значение пустой ячейки. Я msgbox'd новое значение даты и обнаружил, что это «12:00 AM». Существует постоянный встроенная в VBA для представления этого значения, так что я могу сделать тесты, аналогичные:

If myDate = vbNullDate Then 
+1

В этом случае константа просто равна нулю. –

+0

Спасибо andy, не понял, что это было так просто – Swiftslide

+1

Вы должны заметить, что Excel/VBA отличается от других программ тем, что на самом деле у него нет типа данных DateTime. Вместо этого он использует тип данных «double» для хранения дат/времени и форматирует их на экране, чтобы они выглядели как даты. – Brad

ответ

1

Как сказал Энди Holaday в комментариях ниже вопроса, значение по умолчанию даты просто 0. Глупо мне :/

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 
7

Я сталкиваюсь с этой проблемой время от времени. Я обычно делаю следующее:

dim d as date 
if d = cdate(0) then msgbox "Default value" 
Смежные вопросы