Числовые значения определяются типами данных, такими как integer или byte. Эти типы данных используются для оптимизации обработки и выделения памяти в Excel. В этом руководстве мы собираемся показать вам, как преобразовать строку в число в Excel VBA.
Типы данных в VBA
Как и в некоторых других языках программирования, VBA использует типы данных для определения того, какие переменные он может хранить и как они хранятся. Большинство типов данных в VBA определяют числовые значения. Вот краткий список числовых типов данных:
Тип данных | Хранение | Диапазон |
Байт | 1 байт | от 0 до 255 |
Целое число | 2 байта | от -32,768 до 32,767 |
Длинный | 4 байта | от -2,147,483,648 до 2,147,483,647 |
Single | 4 байта | от -3.402823E38 до -1.401298E-45 для отрицательных значений; от 1.401298E-45 до 3.402823E38 для положительных значений |
Дважды | 8 байт | -1.79769313486231E308 в-4.94065645841247E-324 для отрицательных значений; 4.94065645841247E-324 в 1.79769313486232E308 для положительных значений |
LongLong | 8 байт | от -9,223,372,036,854,775,808 до 9,223,372,036,854,775,807
Допустимо только на 64-разрядных платформах. |
Валюта | 8 байт | от -922,337,203,685,477.5808 до 922,337,203,685,477.5807 |
Десятичная | 14 байт | +/-79,228,162,514,264,337,593,543,950,335 без десятичной точки; +/-7,9228162514264337593543950335 с 28 знаками справа от десятичной дроби |
Поскольку существует множество числовых типов данных, в Excel VBA существует множество функций для преобразования строки в число.
Функции для преобразования строки в число в Excel VBA
Все функции преобразования используют одинаковый синтаксис: для каждой требуется один строковый аргумент для преобразования в число. Например:
CDec(выражение)
Каждая функция возвращает ошибку, если аргумент string либо не является числовым, либо находится за пределами диапазона преобразуемого типа данных.
CInt(«A») возвращает ошибку несоответствия типов, поскольку «A» не является числовым значением.
CByte(«1250») возвращает исключение переполнения.
Функция | Возвращаемый тип | Пример |
CByte | Байт | CByte («65,75») возвращает 66 |
CCur | Валюта | CCur(«$ 256,000.50») возвращает 256000,5 |
CDbl | Дважды | CDbl(128.239856 * 4.8 * 0.04) возвращает 24.622052352 |
CDec | Десятичная | CDec(«15000000.5678») возвращает 15000000.5678 |
CInt | Целое число | CInt(«1234.56») возвращает 1235 |
CLng | Длинный | CLng(«1,500,000.88») возвращает 15000001 |
CLngLng | LongLong | CLngLng(«1,250,500,000.88») возвращает 1250500001 |
CSng | Single | CSng(«5.67854») возвращает 5.67854 |
Бонус: используйте функцию IsNumeric для проверки значения
Чтобы избежать ошибок несоответствия типов, вы можете использовать функцию IsNumeric для проверки, является ли выражение числовым или нет. Функция возвращает логическое значение на основе выражения. TRUE , если выражение числовое, FALSE в противном случае.
Вот пример функции, которая может сначала проверить данные и преобразовать их в целое число, если оно числовое. Если аргумент не является допустимым числом, функция возвращает 0.