Съдържание
В тази статия ще обсъдим няколко метода за преобразуване на низ в число в 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 преобразува стойност на цифров низ в стойност тип данни long . Тя работи подобно на функцията 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 .
Двойният тип данни обхваща- (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 съдържат някои стойност на цифров низ и конвертирани числа от двоен тип данни са в клетки 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 към спаси
Функция 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 Следваща клетка End Sub
- Сега натиснете F5 към стартирайте на изход както е показано по-долу снимка на екрана .
Бележки
- Използвахме функция isNumeric в 2-ри и 3-ти методи в нашия код на VBA, който проверява дали даден израз може да бъде преобразуван в число.
- В метод 1 , използвахме вградени функции (CInt, CDbl, CSng.....), за да конвертиране на цифрови стойности на низове към номера . Но ако има нецифрова стойност , ще се покаже грешка при несъответствие .
Заключение
Сега вече знаем как да конвертираме символни низове в числа в Excel. Надяваме се, че това ще ви насърчи да използвате тази функционалност по-уверено. Ако имате въпроси или предложения, не забравяйте да ги поставите в полето за коментари по-долу.