Тип данных VariantVariant data type

Тип данных Variant является типом данных для всех переменных, для которых в явной форме не объявлен другой тип (с использованием таких операторов, как Dim, Private, Public или Static).The Variant data type is the data type for all variables that are not explicitly declared as some other type (using statements such as Dim, Private, Public, or Static).

Типы данных Variant не имеют символа объявления типа .The Variant data type has no type-declaration character.

Variant — это специальный тип данных, который может содержать любой вид данных, кроме данных с фиксированной длиной String.A Variant is a special data type that can contain any kind of data except fixed-length String data. (Типы Variant теперь поддерживают пользовательские типы). Тип Variant также может содержать специальные значения Empty, Error, Nothing и Null.(Variant types now support user-defined types.) A Variant can also contain the special values Empty, Error, Nothing, and Null. Вы можете определить, как данные типа Variant обрабатываются с использованием функции VarType или TypeName.You can determine how the data in a Variant is treated by using the VarType function or TypeName function.

Числовые данные могут быть любым целым или действительным числом из диапазона от -1,797693134862315E308 до -4,94066E-324 для отрицательных значений и от 4,94066E-324 до 1,797693134862315E308 для положительных значений.Numeric data can be any integer or real number value ranging from -1.797693134862315E308 to -4.94066E-324 for negative values and from 4.94066E-324 to 1.797693134862315E308 for positive values.

Обычно числовые данные Variant хранятся в Variant в исходном виде.Generally, numeric Variant data is maintained in its original data type within the Variant. Например, если назначить Integer типу Variant, последующая операция обрабатывает тип Variant как Integer.For example, if you assign an Integer to a Variant, subsequent operations treat the Variant as an Integer. Однако в том случае, когда с типом Variant, содержащим Byte, Integer, Long или Single, выполняется арифметическая операция и результат выходит за пределы обычного диапазона для исходного типа данных, этот результат повышается в рамках Variant до следующего по величине типа данных.However, if an arithmetic operation is performed on a Variant containing a Byte, an Integer, a Long, or a Single, and the result exceeds the normal range for the original data type, the result is promoted within the Variant to the next larger data type. Byte повышается до Integer, Integer повышается до Long, а Long и Single повышаются до Double.A Byte is promoted to an Integer, an Integer is promoted to a Long, and a Long and a Single are promoted to a Double.

Если переменные Variant, содержащие значения Currency, Decimal и Double, выходят за границы соответствующего диапазона, возникает ошибка.An error occurs when Variant variables containing Currency, Decimal, and Double values exceed their respective ranges.

Вы можете использовать тип данных Variant вместо любого другого типа данных, чтобы сделать работу с данными более гибкой.You can use the Variant data type in place of any data type to work with data in a more flexible way. Если переменная Variant содержит цифры, в зависимости от контекста они могут быть как строковым представлением этих цифр, так и их фактическим значением.If the contents of a Variant variable are digits, they may be either the string representation of the digits or their actual value, depending on the context. Пример:For example:

Dim MyVar As Variant 
MyVar = 98052 

В предыдущем примере MyVar содержит числовое представление — фактическое значение 98052.In the preceding example, MyVar contains a numeric representation—the actual value 98052. Арифметические операторы работают ожидаемым образом для переменных Variant, содержащих числовые значения или строковые данные, которые можно интерпретировать как числа.Arithmetic operators work as expected on Variant variables that contain numeric values or string data that can be interpreted as numbers. Если вы используете оператор + для сложения MyVar с другой переменной Variant, содержащей число, или с переменной числового типа, результатом является арифметическая сумма.If you use the + operator to add MyVar to another Variant containing a number or to a variable of a numeric type, the result is an arithmetic sum.

Значение Empty указывает переменную Variant, которая еще не была инициализирована (ей не было назначено начальное значение).The value Empty denotes a Variant variable that hasn't been initialized (assigned an initial value). Переменная Variant со значением Empty равна 0 при использовании в числовом контексте и строке нулевой длины ("") при использовании в строковом контексте.A Variant containing Empty is 0 if it is used in a numeric context, and a zero-length string ("") if it is used in a string context.

Не путайте значение Empty со значением Null.Don't confuse Empty with Null. Null указывает, что переменная Variant намеренно не содержит действительных данных.Null indicates that the Variant variable intentionally contains no valid data.

Error в Variant представляет собой специальное значение, используемое для указания на возникновение в процедуре состояния ошибки.In a Variant, Error is a special value used to indicate that an error condition has occurred in a procedure. Однако в отличие от других типов ошибок обычная обработка ошибки на уровне приложений не выполняется.However, unlike for other kinds of errors, normal application-level error handling does not occur. Это позволяет как вам, так и приложению предпринять некоторые альтернативные действия на основании значения ошибки.This allows you, or the application itself, to take some alternative action based on the error value. Значения Error создаются посредством преобразования действительных чисел в значения ошибки с помощью функции CVErr.Error values are created by converting real numbers to error values by using the CVErr function.

См. такжеSee also

Поддержка и обратная связьSupport and feedback

Есть вопросы или отзывы, касающиеся Office VBA или этой статьи?Have questions or feedback about Office VBA or this documentation? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь.Please see Office VBA support and feedback for guidance about the ways you can receive support and provide feedback.