В этой статье будет продемонстрировано использование функции VarType в VBA.
VarType означает тип переменной. Мы можем передать имя переменной функции VarType, и она вернет целое число, которое отображает тип данных, хранящихся в этой переменной, в соответствии со списком констант VBA.
Использование переменной Variant для поиска VarType
Мы можем объявить переменную как переменную Variant. Это позволит нам хранить в нем любые разрешенные данные. Затем мы можем заполнить эту переменную и использовать функцию VarType, чтобы узнать, какой тип данных находится в переменной.
Например:
12345 | Sub TestVarType ()Dim MyVariable как вариантMyVariable = "Привет, мир"MsgBox "Тип переменной" & VarType (MyVariable)Конец подписки |
Это вернет следующее окно сообщения:
Поэтому возвращается значение 8. Это в константе Excel, которая определяет тип данных, хранящихся в переменной.
Это постоянное значение соответствует таблице ниже:
Постоянный | Ценить | Описание |
---|---|---|
vbEmpty | 0 | Пустой (неинициализированный) |
vbNull | 1 | Null (нет достоверных данных) |
vbInteger | 2 | Целое число |
vbLong | 3 | Длинное целое |
vbSingle | 4 | Число одинарной точности с плавающей запятой |
vbDouble | 5 | Число двойной точности с плавающей запятой |
vbCurrency | 6 | Валютная стоимость |
vbDate | 7 | Значение даты |
vbString | 8 | Нить |
vbObject | 9 | Объект |
vbError | 10 | Значение ошибки |
vbBoolean | 11 | Логическое значение |
vbVariant | 12 | Вариант (используется только с массивами вариантов) |
vbDataObject | 13 | Объект доступа к данным |
vbDecimal | 14 | Десятичное значение |
vbByte | 17 | Значение байта |
vbLongLong | 20 | Целое число LongLong (действительно только на 64-битных платформах) |
vbUserDefinedType | 36 | Варианты, содержащие определяемые пользователем типы |
vbArray | 8192 | Массив (всегда добавляется к другой константе, когда возвращается этой функцией) |
Мы можем попробовать другой пример:
12345 | Sub TestVarType ()Dim MyVariable как вариантMyVariable = 32760MsgBox "Тип переменной" & VarType (MyVariable)Конец подписки |
На этот раз окно сообщения вернет 2, поскольку тип данных, хранящихся в переменной, - Integer.
Однако, если мы изменим значение на 32780, то возвращаемое значение будет 3 - длинное целое число, поскольку тип данных Integer имеет максимальное значение 32767; после чего это длинное целое число.
Если бы мы еще раз исправили код:
12345 | Sub TestVarType ()Dim MyVariable как вариантMyVariable = 32760,52MsgBox "Тип переменной" & VarType (MyVariable)Конец подписки |
Теперь мы получим возвращаемое значение 5 - тип данных Double из-за десятичных знаков.
Если бы мы поместили значение переменной в кавычки, то снова будет возвращено 8, поскольку любое значение, содержащееся в кавычках, сохраняется как строковое значение.
12345 | Sub TestVarType ()Dim MyVariable как вариантMyVariable = "32760.52"MsgBox "Тип переменной" & VarType (MyVariable)Конец подписки |