Оглавление
В этой статье мы рассмотрим несколько методов преобразования строки в число в Excel VBA. Мы увидим, как использовать встроенные функции и создать с их помощью пользовательскую функцию для преобразования строки в число на примерах кода VBA.
Скачать Рабочую тетрадь для практических занятий
Скачайте эту рабочую тетрадь для тренировок, чтобы заниматься во время чтения этой статьи.
Преобразование строки в число.xlsm3 способа преобразования строки в число в Excel VBA
1. Преобразование строки в число с помощью функций преобразования типов
Excel предоставляет несколько встроенных функции преобразования типов Мы можем использовать их в нашем коде VBA, чтобы легко преобразовать строковый тип данных в различные типы данных.
1.1 Преобразование строки в целое число
Для преобразования строка на целое число мы можем использовать Функция CInt в нашем коде. Функция CInt принимает только один аргумент и это должно быть числовое значение Давайте попробуем следующий код в редакторе Visual Code Editor.
Sub StringToNumber() MsgBox CInt(12.3) End Sub
Нажмите F5 на запустить сайт код Выходные данные показаны в MsgBox .
Функция CInt преобразованный сайт числовая строка значение ("12.3" ) к целое число 12.
Чтобы лучше понять Функция CInt запустите следующий код в редакторе кода и соблюдать сайт результаты .
Sub StringToNumber() For i = 3 To 7 Cells(i, 3).Value = CInt(Cells(i, 2)) Next End Sub
Сайт выход здесь в следующем скриншот .
Объяснение кода
В этом коде мы использовали Для...Следующий цикл применять Функция CInt на струнах клеток B3:B7. Сайт выходы печатаются в ячейках C3:C7. Мы использовали Функция клеток для указания входных значений и места печати выходных значений.
Результаты
Функция CInt преобразованный 25,5 к следующее целое число 26 С другой стороны, это преобразованный 10.3 на 10, а не 11 Если десятичное числовое значение меньше .5, функция округляет до того же числа. Но функция десятичная дробь числовое строковое значение превращается в следующее целое число номер, если он равный или больше .5.
Примечание
Целочисленное значение имеет диапазон между -32,768 на 32,767 Если мы поместим числовое значение, которое является вне этого диапазона Excel покажет ошибка .
1.2 Перевод строки в длинную строку
Сайт Функция CLng преобразует числовое строковое значение в длинный тип данных Она работает аналогично функции CInt. Ключевое отличие заключается в ее ассортимент который находится между -2,147,483,648 и 2,147,483,647.
Код для выполнения приведен ниже: Sub StringToNumber() For i = 3 To 9 Cells(i, 3).Value = CLng(Cells(i, 2)) Next End Sub
Здесь клетки B3:B9 содержать некоторые числовое строковое значение и преобразованный l большие числа находятся в клетках C3:C9. Сайт Функция CLng преобразованный -32800 и 32800 успешно к длинные числа который Функция CInt не может. Но он также получит ошибка если вход числовое значение это вне зоны доступа.
1.3 Перевод строки в десятичную систему
Использование Функция CDec мы можем конвертировать a числовое строковое значение к десятичный тип данных. Выполнить следующий код конвертировать сайт числовые значения в клетках B3:B7 к десятичный тип данных.
Sub StringToNumber() For i = 3 To 7 Cells(i, 3).Value = CDec(Cells(i, 2)) Next End Sub
1.4 Строка к одиночке
В этом примере мы превратим входные строки в единичный тип данных (числа с плавающей точкой одинарной точности). Для этого нам необходимо использовать Функция CSng .
Единственный тип данных - диапазоны. (i) -3.402823E38 на -1.401298E-45 для отрицательный номера.
(ii) 1.401298E-45 на 3.402823E38 для позитивный номера.
Выполните следующий код в редакторе visual basic.
Sub StringToNumber() For i = 3 To 7 Cells(i, 3).Value = CSng(Cells(i, 2)) Next End Sub
На выходе ячейки B3:B9 содержать некоторые числовое строковое значение, и преобразованные числа с одним типом данных находятся в клетках C3:C9. Но он также получит ошибка если вход числовое значение это вне зоны доступа.
1.5 Перевод строки в дубль
В этом примере мы превратим входные строки в тип данных double (числа с плавающей точкой двойной точности). Для этого нам необходимо использовать Функция CDbl .
Тип данных double ranges- (i) -1.79769313486231E308 на -4.94065645841247E-324 для отрицательный номера.
(ii) 4.94065645841247E-324 на 1.79769313486232E308 для позитивный номера.
Выполните следующий код в редакторе visual basic.
Sub StringToNumber() For i = 3 To 7 Cells(i, 3).Value = CSng(Cells(i, 2)) Next End Sub
На выходе ячейки B3:B9 содержать некоторые числовое строковое значение и преобразованные числа типа double находятся в клетках C3:C9. Но он также получит ошибка если вход числовое значение это вне зоны доступа.
1.6 Перевод строки в валюту
Сайт тип данных валюты удобно, когда вычисления связаны с деньги Более того, если мы хотим большей точности в исправлено - точка расчет Использование типа данных currency является хорошим выбором. Нам необходимо использовать Функция CCur для преобразования строки в тип данных валюты . Тип данных диапазоны с сайта -922,337,203,685,477.5808 на 922,337,203,685,477.5808.
Код к конвертировать числовое строковое значение клетки B3:B7 на тип данных валюты в клетках C3:C7 здесь ниже.
Sub StringToNumber() For i = 3 To 7 Cells(i, 3).Value = CCur(Cells(i, 2)) Next End Sub
1.7 Перевод строки в байт
Сайт Функция CByte преобразует числовые строковые значения в тип данных байт который варьируется от от 0 до 255.
Код следующим образом :
Sub StringToNumber() For i = 3 To 7 Cells(i, 3).Value = CByte(Cells(i, 2)) Next End Sub
На выходе ячейки B3:B9 содержать некоторые числовое строковое значение, и преобразованные числа байтового типа данных находятся в клетках C3:C9. Но он также получит ошибка если вход числовое значение это вне зоны доступа.
Читать далее: Как преобразовать строку в длину с помощью VBA в Excel
Похожие чтения
- Преобразование строки в двойное число в Excel VBA (5 методов)
- Как преобразовать текст в число с помощью Excel VBA (3 примера с макросами)
- Исправьте ошибку преобразования в число в Excel (6 методов)
- Как преобразовать научную нотацию в число в Excel (7 способов)
2. Использование пользовательской функции VBA для проверки и преобразования строки в число в Excel
В этом рисунке мы собираемся сделать пользовательская функция для преобразования строк в числа. Затем мы можем использовать это пользовательская функция в нашем рабочий лист как встроенная функция В этом примере мы будем использовать Функция CInt на конвертировать строки к целые числа при создании пользовательская функция. Мы также можем использовать все другие функции описанный в метод 1 преобразовать строки на различные типы данных Для этого выполните следующие действия.
Шаги:
- Здесь, в клетках B3:B7, у нас есть несколько числовых строковых значений.
- Теперь в редакторе visual basic, копия и паста следующий код, а затем нажмите Ctrl + S на сохранить
Function StringToNumber(inputStr) Dim convertedNum As Variant If IsNumeric(inputStr) Then If IsEmpty(inputStr) Then convertedNum = "-" Else convertedNum = CInt(inputStr) End If Else convertedNum = "-" End If StringToNumber = convertedNum End Function
- В камере C3 , начать печатать сайт название функции ( StringToNumber ). Excel будет автоматически предлагать сайт функция использовать. Нажмите сайт Клавиша Tab чтобы войти в функцию.
- Положите ссылка на ячейку B3 в качестве единственного аргумента.
- Теперь нажмите Войти после закрытия круглых скобок.
- Найдите Наполнительная рукоятка в правый нижний угол клетка C3 на применять функция для клеток C4:C7.
- Конечным результатом является получение заветных целых чисел из строковых значений.
3. Код VBA для преобразования выделенного диапазона ячеек в числа в Excel
В этом рисунке мы преобразуем файл ассортимент из выбранные клетки содержащие строковые значения в целые числа. Если какая-либо ячейка содержит нечисловые значение в нем, то на выходе будет тире (-) линия вместо этого . Следите за шаги :
- Выберите ячейки B3:B6 имеющий числовые строки значения и B7 который содержит нечисловые
- В Редактор Visual Basic копия и паста следующий код .
Sub StringToNumber() Dim convertedNum As Variant For Each Cell In Selection If IsNumeric(cell) Then If IsEmpty(cell) Then convertedNum = "-" Else convertedNum = CInt(cell) End If Else convertedNum = "-" End If With cell .Value = convertedNum.HorizontalAlignment = xlCenter End With Next cell End Sub
- Теперь нажмите F5 на запустить сайт выход как показано ниже скриншот .
Примечания
- Мы использовали функция isNumeric в 2-й и 3-й методы в нашем коде VBA, который проверяет, может ли выражение быть преобразовано в число.
- В метод 1 Мы использовали встроенные функции (CInt, CDbl, CSng.....), чтобы преобразование числовых строковых значений на номера . Но если есть нечисловое значение , он покажет ошибка несоответствия .
Заключение
Теперь мы знаем, как преобразовывать строковые значения в числа в Excel. Надеемся, что это поможет вам более уверенно использовать эту функцию. Любые вопросы или предложения не забудьте оставить в поле для комментариев ниже.