Нулевые значения для переменных в VBA - PullRequest
17 голосов
/ 12 апреля 2011

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

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

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

1 Ответ

36 голосов
/ 12 апреля 2011
Dim x As Variant
x = Null

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

Вариант - это специальный тип данных, который может содержать данные любого типа [...] Вариант также может содержать специальные значения Пусто, Ошибка, Ничего и Нуль .

«Смысл» всех других типов данных состоит в том, что они не могут содержать данные любого типа. У меня есть два преимущества:

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...