Нулевые значения для переменных в VBA

Как определить нулевую строку, дату или целое число в VBA?

Мне нужно уметь назначать значение Null некоторым полям для определенных записей, когда данные неполные или нерелевантные, но если я объявляю переменную как строку, дату или целое число, я получаю ошибки при попытке присвоить значение Null.

Это единственное решение для использования Variant? Если да, то в чем смысл всех других типов данных в VBA?

Ответы

Ответ 1

Dim x As Variant
x = Null

Только тип данных Variant может содержать значение Null.

A Variant - это специальный тип данных, который может содержать любые данные [...] Вариант может также содержать специальные значения Empty, Error, Nothing и Null.

"Точка" всех других типов данных заключается именно в том, что они не могут содержать какие-либо данные типа ol. Это имеет два преимущества, о которых я могу думать:

  • Программисту сложнее назначить данные непреднамеренного типа переменной по ошибке, так как это будет обнаружено во время компиляции. Это может помочь предотвратить ошибки и сделать более понятными для вас и следующего человека, который будет поддерживать ваш код.
  • Узкие типы данных сохраняют пространство для хранения. Помещение целых чисел в Variant (16 байт) занимает больше памяти, чем помещение их в Int (2 байта). Это становится значительным, если у вас большие массивы.

Конечно, варианты имеют свое место, как обсуждают другие темы на этом сайте.