Remkomplekty.ru

IT Новости из мира ПК
19 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Vba excel преобразование типов данных

Урок 16 по VBA — функции для работы с типами данных

Описанные ниже функции позволяют преобразовать переданный параметр, который может быть или числом или строкой к заданному типу данных vba. Отличительная особенность данных функций vba преобразования типов от остальных – префикс C (от слова Convert), после которого следует краткое имя типа данных, к которому происходит преобразование (например, Bool – Boolean, Cur – Currency, и так далее).

CBool (par) – Преобразование к типу Boolean. Если параметр par будет отличаться от 0, то функция вернет значение true, в противном случае – false.

CByte (par) – Преобразование к типу Byte. Параметр par должен содержать числовое значение или строку, которые являются числом без знака в диапазоне значений от 0 до 255. Условия преобразования:

  • Если значение дробной части меньше 0.5, то она будет отброшена. В случае, если дробная часть больше 0.5 – к целой части добавится единица. Если же дробная часть ровна 0.5, то произойдет округление до ближайшего четного числа.
  • Если переданный параметр является строкой, то он должен содержать только цифры, в противном случае произойдет генерация ошибки.
  • В случае, если параметр содержит отрицательное число или число, которое больше 255, то также произойдет генерация ошибки. (vba преобразование типов)

CCur (par) – Преобразование к типу vba Currency. Передаваемый параметр должен содержать значение в диапазоне от -922 337 203 685 477.5808 до 922 337 203 685 477.5807.

  • Если параметр содержит дробное число, содержащее больше 4 знаков в дробной части, то функция округляет его до четырех десятичных знаков.
  • Если параметр не входит в допустимый диапазон, то произойдет генерация ошибки.

CDate (par) – Преобразует переданный параметр vba в тип дата.

CDbl (par) – Преобразование к типу vba Double. Переданный параметр должен содержать любое числовое значение или строку, которые входят в диапазон от -1.79769313486232E308 до -4.94065645841247E-324 для отрицательных значений, и от 4.94065645841247E-324 до 1.79769313486232E308 для положительных значений.

  • Если значение переданного параметра не попадает в допустимый диапазон, то произойдет ошибка. (vba преобразование типов)
  • Если параметр является строкой, содержащей не только цифры, то произойдет ошибка.

CDec (par) – Преобразование к типу vba Decimal. Параметр должен содержать любое числовое или строковое значение, входящее в диапазон представляющий целое число в диапазоне +/-79 228 162 514 264 337 593 543 950 335 или смешанное с не более чем 28 цифрами в дробной части в диапазоне +/-7.9228162514264337593543950335. Минимальным возможным ненулевым числом является 0.0000000000000000000000000001.

  • Если значение параметра не входит в допустимый диапазон – произойдет генерация сообщения об ошибке.
  • Если передаваемый параметр является строкой и содержит не только цифры, то произойдет генерация ошибки.

CInt (par) – Преобразование к типу vba Integer. Передаваемый параметр должен входить в диапазон чисел от -32768 до 32767.

  • Если значение параметра не входит в допустимый диапазон – произойдет генерация сообщения об ошибке. (vba преобразование типов)
  • Если передаваемый параметр является строкой и содержит не только цифры, то произойдет генерация ошибки.
  • Если передаваемый параметр содержит дробную часть, которая равна 0.5, то произойдет округление до ближайшего четного числа.

CLng (par) – Преобразование к типу vba Long, допустимы диапазон передаваемого параметра числа от -2147483648 до 2147483647.

  • Если значение параметра не входит в допустимый диапазон – произойдет генерация сообщения об ошибке.
  • Если передаваемый параметр является строкой и содержит не только цифры, то произойдет генерация ошибки.
  • Если передаваемый параметр содержит дробную часть, которая равна 0.5, то произойдет округление до ближайшего четного числа.

CSng (par) – Преобразование к типу vba Single. Допустимый диапазон — число от -3.402823E8 до -1.401298E-45 для отрицательных значений и от 1.401298E-45 до 3.402823E8 для положительных значений.

  • Если передаваемый параметр содержит значение, которое меньше минимального допустимого значения, то функция вернет значение 0.
  • Если параметр содержит значение, которое превышает максимально допустимое, то произойдет генерация ошибки. (vba преобразование типов)
  • Если передаваемый параметр является строкой и содержит не только цифры, то произойдет генерация ошибки.
  • Если число знаков дробной части в параметре выходит за пределы допустимого диапазона, то функция усекает ее (дробную часть).

CStr (par) – Преобразует переданный параметр в строковое значение.

Str (par) — Аналогично функции CStr, но перед положительными числами вставляется пробел.

CVar (par) – Преобразует переданы параметр в тип vba Varint.

CVDate (par) – Фактически, функция аналогична CDate, и используется только для совместимости.

Val (par) — Извлекает из переданного параметра только цифры.

TypeName (par) – Функция возвращает имя типа данных vba, для переданного параметра.

Следующие функции преобразования vba возвращают логические значения true или false, и предназначены для проверки переданного параметра на конкретный тип данных.

IsNumeric (par) — Число

IsDate (par) — Дата

IsArray (par) — Массив

IsEmpty (par) – Тип Empty

IsError (par) — Ошибка

IsMissing (par) – Необязательный параметр, переданный в процедуру

IsNull (par) – Пустое значение

IsObject (par) — Объект

Для преобразования числового значения к восьмеричному или шестнадцатеричному виду, применяются следующие функции:

Hex (par) – Шестнадцатеричный вид.

Oct (par) – Восьмеричный вид.

Помимо данных функций преобразования типов vba, для формирования восьмеричного или шестнадцатеричного вида числа, можно использовать следующий формат при записи:

&O – Буква O говорит, что мы хотим прописать восьмеричное значение, которое следует после символа O.

&HA — Буква H говорит, что мы хотим прописать шестнадцатеричное значение, которое следует после символа H.

Так как большая часть приведенных функций используется и в языке VBScript, то примеры с ними можно посмотреть в статьях «Урок 4 по VBScript: преобразование типов данных» и «Урок 10 по VBScript: Функции — математические и для работы с подтипами данных».

Спасибо за внимание. Автор блога Владимир Баталий

Vba excel преобразование типов данных

о т 0 до 65535 (без знака); дробная часть округляется.1

1 Дробные части могут быть подчиняться специальному типу округления под названием банковское округление. С м. примечания для дополнительных сведений.

К ак правило предпочтительнее использовать функции преобразования типа Visual Basic, чем методы .NET Framework, например ToString() в классе Convert или в отдельном типе структуры или класса. Ф ункции языка Visual Basic предназначены для оптимального взаимодействия с Visual Basic, и они также сделают исходный код короче и облегчат его чтение. К роме того методы преобразования .NET Framework не всегда получают тот же результат, что функции Visual Basic, например при преобразовании Boolean к Integer. Д ополнительные сведения см. в разделе Устранение неполадок, связанных с типами данных (Visual Basic) .

  • Приведение типа данных. В общем случае, функции преобразования типов данных можно использовать для приведения результата некоторой операции к определенному типу данных вместо типа данных, получаемого по умолчанию. Например, функция CDec используется для принудительного приведения результатов операций к десятичному типу в тех случаях, когда получаемые значения относятся к типу данных с одинарной точностью, двойной точностью или к целочисленному типу.
  • Сбой преобразования. Если параметр expression, передаваемый в функцию, находится вне диапазона значений типа данных, в который преобразуется expression, возникает ошибка OverflowException .
  • Дробная часть. При преобразовании нецелого значения к целочисленному типу функции преобразования целых чисел (CByte, CInt, CLng, CSByte, CShort, CUInt, CULng и CUShort) удаляют дробную часть и округляют значение до ближайшего целого числа.

Е сли дробная часть равна точно 0,5, то функции преобразования целых чисел округлят его до ближайшего четного целого числа. Н апример, 0,5 округляется до 0, а 1,5 и 2,5 округляются до 2. Э то иногда называется банковским округлением, и его целью является компенсация сдвигов, которые могут накапливаться при сложении многих таких чисел.

C Int и CLng отличаются от функций Int и Fix , которые вместо округления отсекают дробную часть числа. К роме того Fix и Int всегда возвращают значение того же типа данных, что и переданное значение.

  • Преобразования даты/времени. Функция IsDate используется для определения возможности преобразования значения в дату и время. CDate распознает литералы даты и литералы времени, но не числовые значения. Чтобы преобразовать значение Date Visual Basic 6.0 к Date Visual Basic 2005 или более поздних версий, можно использовать метод DateTime.FromOADate .
  • Нейтральные значения даты/времени. Тип данных Date (Visual Basic) всегда содержит и дату, и время. При преобразовании типов в Visual Basic нейтральным значением даты считается 1/1/1 (1 января 1 года), а нейтральным значением времени — 00:00:00 (полночь). Если значение с типом Date преобразуется в строку, функция CStr не включает нейтральные значения в конечную строку. Например, при преобразовании значения #January 1, 0001 9:30:00# в строку, будет возвращен результат «9:30:00»; дата отбрасывается. При этом сведения о дате останутся в исходном значении Date и могут быть извлечены с помощью таких функций, как DatePart .
  • Учет языковых и региональных параметров. Функции преобразования типов, включающие строки, выполняют преобразования на основе текущих языковых и региональных параметров для приложения. Функция CDate распознает форматы даты согласно региональным параметрам системы. Необходимо предоставить день, месяц и год в правильном порядке для имеющихся региональных настроек, в противном случае дата может интерпретироваться неправильно. Полный формат даты не распознается, если он содержит строковое значение дня недели, например «Wednesday».
  • Читать еще:  Createobject excel application

    Е сли требуется преобразовать в или из строкового представление значения в формате, отличном от задаваемого языка, то невозможно использовать функции преобразования типа Visual Basic. Ч тобы сделать это, используйте методы ToString(IFormatProvider) и Parse(String, IFormatProvider) для этих типов значений. Н апример, используйте Double.Parse при преобразовании строки к Double и используйте Double.ToString при преобразовании значения из типа Double в строку.

    Ф ункция CType принимает второй аргумент typename и приводит expression к typename, где typename может быть любым типом данных, структурой, классом или интерфейсом, для которого существует допустимое преобразование.

    Д ля сравнения CType с другими зарезервированными словами преобразования типов см. Оператор DirectCast (Visual Basic) и Оператор TryCast (Visual Basic) .

    Пример использования функции CBool

    В следующем примере для преобразования к Boolean используется функция CBool. Е сли результатом вычисления выражения является ненулевое значение, то CBool возвращает True; в противном случае она возвращает False.

    D im a, b, c As Integer

    Dim check As Boolean

    ‘ The following line of code sets check to True.

    check = CBool (a = b)

    ‘ The following line of code sets check to False.

    Пример использования функции CByte

    В следующем примере для преобразования к Byte используется функция CByte.

    D im aDouble As Double

    Dim aByte As Byte

    ‘ The following line of code sets aByte to 126.

    aByte = CByte (aDouble)

    Пример использования функции CChar

    В следующем примере для преобразования первого символа выражения String к типу Char используется функция CChar.

    D im aString As String

    Dim aChar As Char

    ‘ CChar converts only the first character of the string.

    ‘ The following line of code sets aChar to «B».

    aChar = CChar (aString)

    В ходным аргументом CChar должен быть тип данных Char или String. Н евозможно использовать функцию CChar для преобразования числа в символ, поскольку функция CChar не может принимать данные числовых типов. В этом примере получается число, представляющее кодовую позицию (код символа), которое преобразуется в соответствующий символ. И спользует функцию InputBox для получения строки цифр, CInt для преобразования строки к типу Integer, а ChrW для преобразования строки к типу Char.

    D im someDigits As String

    Dim codePoint As Integer

    Dim thisChar As Char

    someDigits = InputBox( «Enter code point of character:» )

    codePoint = CInt (someDigits)

    ‘ The following line of code sets thisChar to the Char value of codePoint.

    Пример использования функции CDate

    В следующем примере для преобразования строк к Date используется функция CDate. К ак правило, не рекомендуется жестко кодировать дату и время в виде строк (как показано в этом примере). В место этого используйте литералы даты и времени, например #Feb 12, 1969# и #4:45:23 PM#.

    D im aDateString, aTimeString As String

    Dim aDate, aTime As Date

    aDateString = «February 12, 1969»

    aTimeString = «4:35:47 PM»

    ‘ The following line of code sets aDate to a Date value.

    aDate = CDate (aDateString)

    ‘ The following line of code sets aTime to Date value.

    aTime = CDate (aTimeString)

    Пример использования алгоритма CDbl

    D im aDec As Decimal

    Dim aDbl As Double

    ‘ The following line of code uses the literal type character D to make aDec a Decimal.

    ‘ The following line of code sets aDbl to 1.9225456288E+1.

    aDbl = CDbl (aDec * 8.2D * 0.01D)

    Пример использования функции CDec

    В следующем примере для преобразования числа к Decimal используется функция CDec.

    D im aDouble As Double

    Dim aDecimal As Decimal

    ‘ The following line of code sets aDecimal to 10000000.0587.

    aDecimal = CDec (aDouble)

    Пример использования функции CInt

    В следующем примере для преобразования значения к Integer используется функция CInt.

    D im aDbl As Double

    Dim anInt As Integer

    ‘ The following line of code sets anInt to 2346.

    anInt = CInt (aDbl)

    Пример использования алгоритма CLng

    Читать еще:  Работа с ячейками vba excel

    В следующем примере для преобразования значения к Long используется функция CLng.

    D im aDbl1, aDbl2 As Double

    Dim aLng1, aLng2 As Long

    ‘ The following line of code sets aLng1 to 25427.

    aLng1 = CLng (aDbl1)

    ‘ The following line of code sets aLng2 to 25428.

    aLng2 = CLng (aDbl2)

    Пример использования функции CObj

    В следующем примере для преобразования числа к Object используется функция CObj. П еременная Object содержит только 4-байтовый указатель, указывающий на значение типа Double.

    D im aDouble As Double

    Dim anObject As Object

    ‘ The following line of code sets anObject to a pointer to aDouble.

    anObject = CObj (aDouble)

    Пример использования функции CSByte

    В следующем примере для преобразования числа к SByte используется функция CSByte.

    D im aDouble As Double

    Dim anSByte As SByte

    ‘ The following line of code sets anSByte to 40.

    anSByte = CSByte (aDouble)

    Пример использования функции CShort

    В следующем примере для преобразования числа к Short используется функция CShort.

    D im aByte As Byte

    Dim aShort As Short

    ‘ The following line of code sets aShort to 100.

    aShort = CShort (aByte)

    Пример использования алгоритма CSng

    В следующем примере для преобразования значения к Single используется функция CSng.

    D im aDouble1, aDouble2 As Double

    Dim aSingle1, aSingle2 As Single

    ‘ The following line of code sets aSingle1 to 75.34211.

    aSingle1 = CSng (aDouble1)

    ‘ The following line of code sets aSingle2 to 75.34216.

    aSingle2 = CSng (aDouble2)

    Пример использования алгоритма CStr

    В следующем примере для преобразования числа к String используется функция CStr.

    D im aDouble As Double

    Dim aString As String

    ‘ The following line of code sets aString to «437.324».

    aString = CStr (aDouble)

    В следующем примере для преобразования Date к String используется функция CStr.

    D im aDate As Date

    Dim aString As String

    ‘ The following line of code generates a COMPILER ERROR because of invalid format.

    ‘ aDate = #February 12, 1969 00:00:00#

    ‘ Date literals must be in the format #m/d/yyyy# or they are invalid.

    ‘ The following line of code sets the time component of aDate to midnight.

    ‘ The following conversion suppresses the neutral time value of 00:00:00.

    ‘ The following line of code sets aString to «2/12/1969».

    aString = CStr (aDate)

    ‘ The following line of code sets the time component of aDate to one second past midnight.

    aDate = #2/12/1969 12:00:01 AM#

    ‘ The time component becomes part of the converted value.

    ‘ The following line of code sets aString to «2/12/1969 12:00:01 AM».

    aString = CStr (aDate)

    Ф ункция CStr всегда предоставляет значение с типом Date в стандартном кратком формате для текущих региональных параметров, например 6/15/2003 4:35:47 PM. О днако CStr подавляет нейтральные значения 1/1/0001 для даты и 00:00:00 для времени.

    Б олее подробно сведения о значениях, возвращаемых CStr, содержатся в разделе Возвращаемые значения функции CStr (Visual Basic) .

    Пример использования функции CUInt

    В следующем примере для преобразования числа к UInteger используется функция CUInt.

    D im aDouble As Double

    Dim aUInteger As UInteger

    ‘ The following line of code sets aUInteger to 40.

    aUInteger = CUInt (aDouble)

    Пример использования функции CULng

    В следующем примере для преобразования числа к ULong используется функция CULng.

    D im aDouble As Double

    Dim aULong As ULong

    ‘ The following line of code sets aULong to 40.

    aULong = CULng (aDouble)

    Пример использования функции CShort

    В следующем примере для преобразования числа к UShort используется функция CUShort.

    D im aDouble As Double

    Dim aUShort As UShort

    ‘ The following line of code sets aUShort to 40.

    Функция VAL в VBA Excel или как преобразовать TextBox в число (цифру).

    Иногда при написании макросов необходимо производить вычисления или сравнения числовых значений, которые вносятся в поля «TextBox». Существует небольшая проблемка при работе с этими данными – информация из поля «TextBox» воспринимается программой как текстовая и, соответственно, в расчетах не может использоваться.

    Для решения денной проблемы в VBA можно использовать функцию VAL(), которая переводит в численный формат данных. VAL — это функция конвертирующая текстовые значения аргумента в целые числовые или числовые значения с плавающей запятой. Следует отметить что функция Val при преобразовании десятичных дробей в число может распознать только точку, то есть, если вы напишете десятичную дробь через запятую, то функция распознает только первую (целую)часть дроби, остальной текст после запятой функция не воспримет. Например: VAL(«10,8»)= 10

    Рассмотрим пример кода с данной функцией (VAL) и без нее:

    Существует форма для внесения данных, в которой в два поля «TextBox1» и «TextBox1» вносятся числа, которые сравниваются нажатием кнопки «Сравнить»(CommandButton1) и суммируются нажатием кнопки «Сумма» (CommandButton2).

    Если на нажатие кнопки сравнения «Сравнить»(CommandButton1) использовать код:

    1. Private Sub CommandButton1_Click()
    2. Dim i, b As String
    3. i = TextBox1.Value
    4. b = TextBox2.Value
    5. If i b = True Then MsgBox («Первое число больше «)
    6. End Sub

    А на нажатие кнопки суммы «Сумма» (CommandButton2) применить код:

    1. Private Sub CommandButton2_Click()
    2. Dim i, b, d As String
    3. i = UserForm1.TextBox1.Value
    4. b = UserForm1.TextBox2.Value
    5. d = i + b
    6. TextBox3.Value = d End Sub

    Сравнение значений будет выполняться верно, но расчеты суммы будут неверными:

    Применим функцию VAL () в этих кодах:

    1-й код (Сравнение двух чисел)

    1. Private Sub CommandButton1_Click()
    2. Dim i, b As String
    3. i = Val(UserForm1.TextBox1.Value)
    4. b = Val(UserForm1.TextBox2.Value)
    5. If i b = True Then MsgBox («Первое число больше «)
    6. End Sub

    2-й код (Сумма двух чисел)

    1. Private Sub CommandButton2_Click()
    2. Dim i, b, d As String
    3. i = Val(UserForm1.TextBox1.Value)
    4. b = Val(UserForm1.TextBox2.Value)
    5. d = i + b
    6. TextBox3.Value = d End Sub

    С таким кодом кнопки формы UserForm1 работают корректно, как показано на скриншоте далее.

    Совместимость типов данных VBA

    Операторы и выражения

    Выражение — это значение или группа значений, выражающая отдельное значение. Каждое выражение вычисляется до отдельного значения. Например, выражение 10+20 имеет результат 30.

    Выражения состоят из одной или более частей:

    • Константы
    • Переменные
    • Операторы
    • Массивы
    • Элементы массива
    • Функции

    Все выражения имеют результатом одно значение, имеющее один из типов данных, о которых говорилось на предыдущих уроках.

    Выражения могут также иметь результатом одно из специальных значений Empty или Null.

    Значение Empty представляет неинициализированную переменную типа Variant (или результат выражения, содержащий неинициализированную переменную типа Variant).

    Значение Null представляет выражение, содержащее неверные данные.

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

    Элементы данных, над которыми оператор выполняет действие, называются операндами. Например, в выражении 10+20 числа 10 и 20 являются операндами оператора сложения. Выражение может содержать один, несколько операторов или ни одного.

    Читать еще:  Не дает сохранить excel

    Не все типы данных совместимы друг с другом, и нельзя использовать несовместимые типы данных в одном и том же выражении. Например, нельзя произвести арифметическое сложение над числом и строкой. При обработке выражения, содержащего различные типы данных, VBA сначала пытается устранить любое различие типов, преобразуя значения в выражении в совместимые типы данных. Если устранить какие-либо различия преобразованием типов не удается, отображается ошибка времени исполнения и процедура прекращает выполняться.

    VBA предоставляет различные функции для преобразования одного типа данных в другой (о них будет рассказано позже).

    VBA использует различные правила для автоматического преобразования данных в совместимые типы. Как правило, большинство выражений, использующих разные типы данных, вызывают ошибку несовпадения типов только тогда, когда оба операнда в выражении имеют определенные и разные типы. Выражения не вызывают ошибку несовпадения типов, когда один из операндов является переменной типа Variant. VBA легче выполняет автоматические преобразования типов с данными типа Variant.

    Преобразования численных типов

    VBA преобразует численные типы данных в выражении в тип наибольшей точности, который затем дает результату выражения. Например, операндами выражения являются числа 10(Integer) и 20.89 (Single) — результат выражения будет иметь тип Single.

    Но, если переменной типа Integer попытаться присвоить численное выражение типа Single, то VBA произведет округление до необходимой точности.

    Преобразование строк и чисел

    При преобразовании числа в строку VBA создает строку, содержащую все цифры этого числа и десятичный знак (если таковой имеется). Например, число 123.849 будет преобразовано в строку «123.849».

    Если число очень большое или очень маленькое — VBA создаст строку в экспоненциальном виде. Например: 123000000 преобразуется в «123Е6».

    Обратное преобразование возможно, если только строка содержит символьное представление числа в десятичном формате или экспоненциальном, при этом в качестве разделителя дробной части используется точка (но не запятая).

    Преобразования Boolean

    Когда VBA преобразует значения типа Boolean в числа, значение True преобразуется в 1, а False — в 0.

    Когда происходит обратное преобразование, то VBA преобразует 0 в False, а любое другое число — в True.

    Если происходит преобразование типа Boolean в строки, то VBA использует строку «True» для логического значения True и строку «False» — для False. Обратного преобразования строки в тип Boolean не предусмотрено.

    Преобразование Date

    Когда VBA преобразует тип данных Date в число, результатом является численное значение — число типа Double, которое содержит количество дней от 30 декабря 1899 (отрицательное число представляет дату, более раннюю чем 30 декабря 1899). Десятичная часть числа выражает время дня как часть дня; 0 — это полночь, 0.5 — это полдень.

    Преобразование численных типов данных в типы Date является просто обратным преобразованию типа Date в число.

    В начало страницы

    В начало страницы

    Функции преобразования типа

    Каждая функция приводит выражение к определенному тип данных.

    Обязательный аргумент выражениеАргумент — это любое строковое выражение или числовое выражение.

    Тип возвращаемого значения определяется по имени функции в соответствии со следующей таблицей:

    Тип возвращаемого значения

    Диапазон аргумента выражение

    Любое допустимое строковое или числовое выражение.

    От -922 337 203 685 477,5808 до 922 337 203 685 477,5807.

    Любое допустимое выражение даты.

    От -1,79769313486231E308 до
    -4,94065645841247E-324 для отрицательных значений и от 4,94065645841247E-324 до 1,79769313486232E308 для положительных.

    +/-79 228 162 514 264 337 593 543 950 335 для чисел без дробной части. Для чисел с 28 десятичными знаками допустимый диапазон составляет
    +/-7,9228162514264337593543950335. Наименьшее допустимое ненулевое число — 0,0000000000000000000000000001.

    От -32 768 до 32 767, дробная часть округляется.

    От -2 147 483 648 до 2 147 483 647, дробная часть округляется.

    От -3,402823E38 до -1,401298E-45 для отрицательных значений и от 1,401298E-45 до 3,402823E38 для положительных.

    Результат, возвращаемый функцией CStr, зависит от аргумента выражение.

    Тот же диапазон, что и Double для чисел. Тот же диапазон, что и в качестве строки для нечисловых значений.

    Если передаваемое функции выражение находится за пределами диапазона типа данных, в который оно преобразуется, возникает ошибка.

    Как правило, функции преобразования типов используются в тексте программ для того, чтобы указать, что результатом той или иной операции должны стать данные определенного типа, а не типа, заданного по умолчанию. Например, с помощью функции CCur можно принудительно перейти к вычислениям в денежном формате в тех случаях, в которых обычно используются действия с числами с обычной точностью, двойной точностью или с целыми числами.

    Функции преобразования типа данных следует использовать вместо функции Val для преобразования типов данных в приложениях, поддерживающих различные региональные стандарты. Например, при использовании функции CCur десятичные разделители, разделители групп разрядов и параметры денежных единиц распознаются в соответствии с языковыми и региональными параметрами компьютера.

    Если дробная часть целого числа строго равна 0,5, функции CInt и CLng всегда округляют результат до ближайшего четного числа. Например, 0,5 округляется до 0, а 1,5 — до 2. В отличие от функций CInt и CLng, в функциях Fix и Int дробная часть не округляется, а отбрасывается. Кроме того, функции Fix и Int всегда возвращают значение того же типа, что и переданное им выражение.

    Для определения возможности преобразования даты в дату или время используется функция IsDate. Функция CDate распознает литералы даты и времени, а также некоторые числа, которые находятся в диапазоне допустимых дат. При преобразовании числа в дату преобразуется целая часть числа. Дробная часть преобразуется во время суток, начиная с полуночи.

    Функция CDate распознает форматы даты в соответствии с параметрами языковые стандарты системы. Правильное определение дня, месяца и года может быть недоступно, если оно предоставляется в формате, отличном от одного из распознаваемых параметров даты. Кроме того, не удается распознать длинный формат даты, если он содержит строку дня недели.

    Функция CVDate предназначена для обеспечения совместимости с предыдущими версиями Visual Basic. Синтаксис функции CVDate идентичен синтаксису функции CDate, однако функция CVDate возвращает не результат типа Date, а результат типа Variant с подтипом Date. Поскольку теперь реализован встроенный тип Date, необходимость в функции CVDate отпадает. Того же результата можно добиться, преобразовав выражение в тип Date и присвоив это значение переменной типа Variant. Этот способ позволяет преобразовать все прочие встроенные типы в эквивалентные им подтипы Variant.

    Примечание: Функция CDec не возвращает отдельный тип данных. Вместо этого она всегда возвращает результат типа Variant, значение которого преобразовано в подтип Decimal.

    Ссылка на основную публикацию
    ВсеИнструменты
    Adblock
    detector
    ×
    ×