Как да конвертирате низ в число в 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 преобразува стойност на цифров низ в стойност тип данни 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. Надяваме се, че това ще ви насърчи да използвате тази функционалност по-уверено. Ако имате въпроси или предложения, не забравяйте да ги поставите в полето за коментари по-долу.

Хю Уест е опитен обучител и анализатор на Excel с над 10 години опит в индустрията. Има бакалавърска степен по счетоводство и финанси и магистърска степен по бизнес администрация. Хю има страст към преподаването и е разработил уникален подход на преподаване, който е лесен за следване и разбиране. Неговите експертни познания по Excel са помогнали на хиляди студенти и професионалисти по целия свят да подобрят уменията си и да постигнат отлични резултати в кариерата си. Чрез своя блог Хю споделя знанията си със света, като предлага безплатни уроци за Excel и онлайн обучение, за да помогне на хората и фирмите да достигнат пълния си потенциал.