VBA не IsNull

  1. Ваше выражение анализируется как (var is "") or "1", что всегда Истина, потому что "1" Истина-иш.

  2. Если вы добавите круглые скобки, чтобы получить var is ("" or "1"), это эквивалентно var is True, потому что "" or "1" Истина, потому что «1» Истина-иш.

  3. Сравнение строк с is чревато опасностью, потому что оператор is проверяет тождество , а не равенство.

Вы, вероятно, хотите var in ("", "1")

5
задан Fionnuala 27 August 2012 в 21:55
поделиться

4 ответа

Если mrf Различно, затем это первоначально Empty, нет Null. Поэтому необходимо использовать IsEmpty() функция.

11
ответ дан 18 December 2019 в 09:53
поделиться

Нет, Не IsNull работает отлично.

Помните, IsNull является функцией, которая возвращает TRUE, если параметр передал ему, является пустым, и ложным иначе.

Ваш оператор "If Not IsNull (mrf) Then" переводит на английский язык как, "Если mrf не является пустым затем"

то, что это означает, - когда mrf имеет значение, затем Вы обрабатываете код в если оператор. При необходимости чтобы внутренний код стрелял, когда mrf ЯВЛЯЕТСЯ пустым, то необходимо удалить НЕ из оператора.

4
ответ дан 18 December 2019 в 09:53
поделиться

Мое предположение - то, что mrf не является пустым, даже если это пусто или что-то еще. Это могло также быть Ничто, которое отличается от пустого указателя на земле VBA (я думаю). Попытайтесь выполнить код в отладчике и посмотреть на значение mrf. В зависимости от того, каков mrf, можно сделать другой тест (как проверка len (mrf) или не isNothing (mrf) или если это - целое число, и это - init для обнуления, затем mrf <> 0.... Вы получаете идею. Надежда, которая помогает!

1
ответ дан 18 December 2019 в 09:53
поделиться

Вы могли бы интересоваться этой частью на VB6/VBA null/nothing/empty:

http://blogs.msdn.com/ericlippert/archive/2003/09/30/53120.aspx

1
ответ дан 18 December 2019 в 09:53
поделиться
Другие вопросы по тегам:

Похожие вопросы: