В этом руководстве будет показано, как использовать функцию CLng VBA для преобразования выражения в тип данных длинное целое число.
Функция CLng
VBA CLng преобразовать выражение в длинное
Функцию VBA CLng можно использовать для преобразования выражений в длинный тип данных внутри кода VBA.
123456 | Sub CLngExample_1 ()MsgBox CLng (12.34) 'Результат: 12MsgBox CLng (12.345) 'Результат: 12MsgBox CLng (-124) 'Результат: -124MsgBox CLng (-12.34) 'Результат: -12Конец подписки |
VBA CLng Округление
Функция VBA CLng округляет десятичную часть числового типа или числового выражения. Однако не во всех случаях округление выполняется правильно. Когда десятичная часть равна 0,5, функция VBA CLng возвращает ближайшее четное целое число.
1234567891011 | Sub CLngExample_2 ()MsgBox CLng (0.34) 'Результат: 0MsgBox CLng (0.99) 'Результат: 1MsgBox CLng (-124.95) 'Результат: -125MsgBox CLng (1.5) 'Результат: 2MsgBox CLng (2.5) 'Результат: 2Конец подписки |
Мы можем добавить относительно небольшое десятичное число к нашему ожидаемому десятичному значению, чтобы изменить поведение функции VBA CLng на ожидаемое.
1234567891011 | Sub CLngExample_3 ()MsgBox CLng (2.5)Результат: 2MsgBox CLng (2,5 + 0,001)Результат: 3MsgBox CLng (14,5)Результат: 14MsgBox CLng (14,5 + 0,001)Результат: 15Конец подписки |
Программирование на VBA | Генератор кода действительно работает для вас!
VBA CLng преобразование строк в длинные
Функцию VBA CLng можно использовать для преобразования строк в длинные, если символы в строке имеют значение как числа.
123456789101112131415161718 | Sub CLngExample_4 ()Dim StrEx как строкаStrEx = "112"MsgBox CLng (StrEx)Результат: 112StrEx = "112,3"MsgBox CLng (StrEx)'Результат: 112 112,3 округленоStrEx = "11,2"MsgBox CLng (StrEx)'Результат: 112, игнорируетсяStrEx = "112 долларов"MsgBox CLng (StrEx)Результат: 112 $ игнорируетсяКонец подписки |
Ошибка времени выполнения VBA CLng 13 Несоответствие типов
Использование функции VBA CLng со строками, содержащими нечисловые символы или символы, не имеющие значения в числовом контексте, приведет к ошибке времени выполнения ’13’: Несоответствие типов.
1234567 | Sub CLngExample_5 ()'Приведенный ниже код приведет к сообщению об ОШИБКЕ'CLng не может обрабатывать нечисловые символыDim StrEx как строкаStrEx = "Ab13"MsgBox CLng (StrEx)Конец подписки |
Ошибка времени выполнения VBA CLng 6, переполнение
Использование функции VBA CLng со строками, значение которых меньше или больше ожидаемого целого числа, приведет к ошибке времени выполнения ’6’: переполнение. Целочисленный тип данных в Excel имеет ожидаемое значение от -2 147 483 648 до 2 147 483 647.
1234567 | Sub CLngExample_6 ()'Приведенный ниже код приведет к сообщению об ОШИБКЕ'CLng не может обрабатывать нечисловые символыDim StrEx как строкаStrEx = "2147483648"MsgBox CLng (StrEx)Конец подписки |
Устали искать примеры кода VBA? Попробуйте AutoMacro!
Региональные настройки VBA CLng
Функция VBA CLng имеет другое поведение, преобразуя строки с запятой или точкой. Он использует региональные настройки операционной системы для десятичного разделителя и разделителя цифр.
12345678910111213141516 | Sub CLngExample_7 ()Dim StrEx как строкаStrEx = "1,9"MsgBox CLng (StrEx)‘Если в региональных настройках в качестве разделителя группировки указаноРезультат: 19‘Если в региональных настройках в качестве десятичного разделителя указаноРезультат: 2 (2, потому что 1,9 округляется)StrEx = "1.9"MsgBox CLng (StrEx)‘Если в региональных настройках есть. как разделитель группировки, тогдаРезультат: 19‘Если в региональных настройках есть. как десятичный разделитель, тогдаРезультат: 2 (2, потому что 1,9 округляется)Конец подписки |
Программирование на VBA | Генератор кода действительно работает для вас!
VBA CLng преобразование логических значений в длинные
Функция VBA CLng может преобразовывать логические переменные в длинные. Если вычисленное выражение истинно, результирующее длинное число равно -1, а если вычисленное выражение ложно, результирующее длинное число равно 0.
1234567891011121314 | Sub CLngExample_8 ()Dim BoolEx как логическоеBoolEx = TrueMsgBox CLng (BoolEx)'Результат: -1MsgBox CLng (2 = 2)'Результат: -1BoolEx = ЛожьMsgBox CLng (BoolEx)'Результат: 0MsgBox CLng (1 = 2)'Результат: 0Конец подписки |
VBA CLng преобразование дат в длинные
Функция VBA CLng может преобразовывать переменную даты в длинную. Возвращаемое значение - это внутреннее число, используемое Excel для округления даты хранения. Если это число выходит за пределы ожидаемых длинных ограничений для VBA, мы получаем ошибку времени выполнения '6': переполнение.
123456789101112 | Sub CLngExample_9 ()Dim DateEx как датаDateEx = # 2/3/1940 #MsgBox CLng (DateEx)Результат: 14644DateEx = # 8/7/1964 #MsgBox CLng (DateEx)Результат: 23596DateEx = # 3/7/1934 11:32:04 #MsgBox CLng (DateEx)Результат: 12485Конец подписки |