Почему определение нескольких переменных одновременно приводит к пустым переменным, а не к пустым строкам?

Итак, когда я определяю переменные и устанавливаю такие значения:

Dim Str1 as String
Dim Str2 as String
Dim Str3 as String

Str1 = ActiveSheet.Range("A1").value
Str2 = ActiveSheet.Range("A1").value
Str3 = ActiveSheet.Range("A1").value

Как и следовало ожидать, переменные содержат пустые строки (""), поскольку ячейка A1 пуста.

Однако, если я определю их так:

Dim Str1, Str2, Str3 as string

Str1 = ActiveSheet.Range("A1").value
Str2 = ActiveSheet.Range("A1").value
Str3 = ActiveSheet.Range("A1").value

Переменные пусты и вызывают ошибки.

Почему это происходит?

Когда вы используете Dim Str1, Str2, Str3 as string, вы получаете вариант, вариант, строка, а не строка, строка, строка.

user4039065 13.09.2018 18:01

распространенное заблуждение

ashleedawg 13.09.2018 18:28

Поскольку значение по умолчанию для пустого Variant - буквальноEmpty. Вот для чего используется функция VBA IsEmpty: проверка, содержит ли Variant значение или нет. Jeeped ответил, почему вы объявляете варианты. Обратите внимание, что эта настройка запускает проверку «несколько объявлений в одной инструкции» и «переменная является неявным вариантом» в Резиновая утка.

Mathieu Guindon 13.09.2018 19:03
1
3
34
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Когда вы используете Dim Str1, Str2, Str3 as string, вы получаете вариант, вариант, строка, а не строка, строка, строка.

Для использования однострочного объявления

Dim Str1 as string, Str2 as string, Str3 as string

Окно VBE Locals может быстро подтвердить ваши объявления и их статус.

Ах, я думал, что весь смысл однострочного объявления заключается в том, что вы сразу указываете тип групп переменных ... Я также могу вообще избежать однострочных объявлений. По крайней мере, теперь я знаю. Спасибо за быстрый ответ.

Gravitate 13.09.2018 18:04

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

user4039065 13.09.2018 18:06

Да, я думаю, что объявить их по отдельности легче с первого взгляда. У меня был только один подклад, потому что я думал, что это быстрее, так как у меня было много однотипных.

Gravitate 13.09.2018 18:14

Другие вопросы по теме