Функции преобразования значений
Справочник VBA
→
Функции и операторы
→
Преобразования типов данных
Каждая из представленных ниже функций преобразует выражение к определенному типу данных.
Синтаксис
CBool (выражение) — Возвращает тип Boolean
CByte (выражение) — Возвращает тип Byte
CCur (выражение) — Возвращает тип Currency
CDate (выражение) — Возвращает тип Date
CDbl (выражение) — Возвращает тип Double
CDec (выражение) — Возвращает тип Decimal
CInt (выражение) — Возвращает тип Integer
CLng (выражение) — Возвращает тип Long
CSng (выражение) — Возвращает тип Single
CStr (выражение) — Возвращает тип String (если входное выражение типа Boolean то возвращается строка, содержащая True или False; если типа Date — строка, содержащая дату в коротком формате даты Вашей системы; если Null – выводится ошибка времени выполнеия программы; если Empty – пустая строка (“»); если Error — строка, содержащая слово Error , сопровождаемая номером ошибки; если другое числовое значение — строка, содержащая число)
CVar (выражение) — Возвращает тип Variant (Если входное выражение числовое значение то результат типа Double , иначе String.)
выражение — любое строковое выражение или числовое значение.
Комментарии
Если выражение, переданное в функцию, вне диапазона преобразовываемого типа данных, то возможна ошибка значения.
Вообще, Вы можете отредактировать свой код, используя функции преобразования типа данных, чтобы результат некоторой операции выражался как специфический тип данных, а не заданный по умолчанию тип данных.
Когда дробная часть точно 0.5, CInt и CLng всегда округляют ее к самому близкому четному числу. Например, 0.5 окружности к 0, и 1.5 окружности к 2. CInt и CLng отличаются от функций Fix и Int.
Используйте функцию IsDate, чтобы определить, можно ли Data преобразовать в дату или время. CDate распознает литералы даты и времени, а также некоторые числовые значения, которые попадают в диапазон допустимых дат. Конвертируя номер в дату, часть целого числа преобразовывают в дату. Любая дробная часть номера преобразовывают во время дня, начинающееся в полночь.
CDate распознает форматы даты согласно установке региона Вашей системы. Правильность порядка дня, месяца, и года не может быть определена, если она представлена не в формате ваших системных параметров.
Примеры использования функций преобразований
CBool
|
Этот пример использует функцию CBool, чтобы конвертировать выражение в тип Boolean. Если выражение не равно нулю то CBool возвращает True; иначе, он возвращает False.
Dim A, B, Check
A = 5: B = 5 ' Инициализируем переменные.
Check = CBool (A = B) ' Результат проверки True.
A = 0 ' Определяем переменную.
Check = CBool (A) ' Результат проверки False.
|
CByte
|
Этот пример использует функцию CByte, чтобы конвертировать выражение в тип Byte.
Dim MyDouble, MyByte
MyDouble = 125.5678 ' MyDouble является типом Double
MyByte = CByte (MyDouble) ' MyByte округляется к типу Byte 126.
|
CCur
|
Этот пример использует функцию CCur, чтобы конвертировать выражение в Currency.
Dim MyDouble, MyCurr
MyDouble = 543.214588 'MyDouble является Double.
MyCurr = CCur (MyDouble * 2) ' Производим удвоение MyDouble (1086.429176) и результат конвертируюем к типу Currency (1086.4292).
|
CDate
|
Этот пример использует функцию CDate, чтобы конвертировать строку в тип Date. Вообще, кодирование напрямую дат и времени из строки (как показано в этом примере) не рекомендуется. Лучше использовать литералы даты и литералы времени, например, #2/12/1969 # и #4:45:23.
Dim MyDate, MyShortDate, MyTime, MyShortTime
MyDate = «февраль 12, 1969“ ' Определяем дату.
MyShortDate = CDate (MyDate) ' Преобразовываем в тип данных даты.
MyTime = “4:35:47 PM“ ' Определяем время.
MyShortTime = CDate (MyTime) ' Преобразовываем в тип данных даты.
|
CDbl
|
Этот пример использует функцию CDbl, чтобы конвертировать выражение в тип Double.
Dim MyCurr, MyDouble
MyCurr = CCur (234.456784) 'MyCurr является типом Currency.
MyDouble = CDbl (MyCurr * 8.2 * 0.01) ' Конвертируем результат в тип Double.
|
CDec
|
Этот пример использует функцию CDec, чтобы конвертировать числовое значение в тип Decimal.
Dim MyDecimal, MyCurr
MyCurr = 10000000.0587 ' MyCurr является типом Currency.
MyDecimal = CDec (MyCurr) ' MyDecimal является Decimal.
|
CInt
|
Этот пример использует функцию CInt, чтобы конвертировать значение в Целое число.
Dim MyDouble, MyInt
MyDouble = 2345.5678
MyInt = CInt (MyDouble) ' результат 2346.
|
CLng
|
Этот пример использует функцию CLng, чтобы конвертировать значение в тип Long.
Dim MyVal1, MyVal2, MyLong1, MyLong2
MyVal1 = 25427.45: MyVal2 = 25427.55 ' MyVal1, MyVal2 — тип Doubles.
MyLong1 = CLng (MyVal1) ' MyLong1 конвертируется в 25427.
MyLong2 = CLng (MyVal2) ' MyLong2 конвертируется в 25428.
|
CSng
|
Этот пример использует функцию CSng, чтобы конвертировать значение в тип Single.
Dim MyDouble1, MyDouble2, MySingle1, MySingle2
MyDouble1 = 75.3421115: MyDouble2 = 75.3421555 'MyDouble1, MyDouble2 — тип Doubles
MySingle1 = CSng (MyDouble1) ' MySingle1 конвертируется в 75.34211.
MySingle2 = CSng (MyDouble2) ' MySingle2 конвертируется в 75.34216.
|
CStr
|
Этот пример использует функцию CStr, чтобы конвертировать числовое значение в тип String.
Dim MyDouble, MyString
MyDouble = 437.324 ' MyDouble является типом Double.
MyString = CStr (MyDouble) ' MyString конвертируется в “437.324“.
|
CVar
|
Этот пример использует функцию CVar, чтобы конвертировать выражение в тип Variant.
Dim MyInt, MyVar
MyInt = 4534 ' MyInt является типом Integer.
MyVar = CVar (MyInt & “000“) ' MyVar содержит строку “4534000».
|
06.10.2009, 7830 просмотров.
|