Как преобразовать строку в число в Excel VBA (3 метода)

  • Поделись Этим
Hugh West

В этой статье мы рассмотрим несколько методов преобразования строки в число в Excel VBA. Мы увидим, как использовать встроенные функции и создать с их помощью пользовательскую функцию для преобразования строки в число на примерах кода VBA.

Скачать Рабочую тетрадь для практических занятий

Скачайте эту рабочую тетрадь для тренировок, чтобы заниматься во время чтения этой статьи.

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

3 способа преобразования строки в число в 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. Надеемся, что это поможет вам более уверенно использовать эту функцию. Любые вопросы или предложения не забудьте оставить в поле для комментариев ниже.

Хью Уэст — опытный тренер и аналитик Excel с более чем 10-летним опытом работы в отрасли. Он имеет степень бакалавра в области бухгалтерского учета и финансов и степень магистра делового администрирования. Хью страстно любит преподавать и разработал уникальный подход к обучению, которому легко следовать и который легко понять. Его экспертные знания Excel помогли тысячам студентов и специалистов по всему миру улучшить свои навыки и преуспеть в своей карьере. В своем блоге Хью делится своими знаниями со всем миром, предлагая бесплатные учебные пособия по Excel и онлайн-обучение, чтобы помочь отдельным лицам и компаниям полностью раскрыть свой потенциал.