Sisukord
Selles artiklis arutame mitmeid meetodeid stringi teisendamiseks numbriks Excel VBAs. Näeme, kuidas kasutada sisseehitatud funktsioone ja luua nende abil kohandatud funktsioon stringi teisendamiseks numbriks koos VBA koodinäidetega.
Lae alla praktiline töövihik
Lae alla see harjutusvihik, et seda artiklit lugedes harjutada.
Stringi teisendamine numbriks.xlsm3 viisi stringi teisendamiseks numbriks Excel VBAs
1. Stringi teisendamine numbriks, kasutades tüübikonversioonifunktsioone
Excel pakub mitmeid sisseehitatud tüübi muundamise funktsioonid Me saame neid kasutada oma VBA-koodis, et kergesti teisendada stringi andmetüübist erinevatesse andmetüüpidesse.
1.1 Stringist täisarvuks
Teisendada string aadressile täisarv võime kasutada CInt funktsioon meie koodis. CInt funktsioon võtab ainult üks argument ja see peaks olema numbriline väärtus Proovime järgmist koodi Visual Code Editoris.
Sub StringToNumber() MsgBox CInt(12.3) End Sub
Press F5 aadressile käivitada . kood Väljund on esitatud MsgBox .
Funktsioon CInt teisendatud . numbriline string väärtus ("12.3" ), et täisarv 12.
Et rohkem mõista CInt funktsioon , käivitage koodiredaktoris järgmine kood ja jälgida . tulemused .
Sub StringToNumber() For i = 3 To 7 Cells(i, 3).Value = CInt(Cells(i, 2)) Next End Sub
The väljund on siinkohal järgmises ekraanipilt .
Kood Selgitus
Selles koodis kasutasime Sest...Järgmine silmus kohaldada CInt funktsioon rakkude jadade kohta B3:B7. The väljundid on trükitud lahtritesse C3:C7. Me kasutasime Rakkude funktsioon et määrata sisendväärtused ja väljundväärtuste trükkimise koht.
Tulemused
Funktsioon CInt ümberarvestatud 25.5 et järgmine täisarv 26 Teisest küljest on see ümberarvestatud 10.3 aadressile 10, mitte 11 Kui kümnendarvu väärtus on väiksem kui 0,5, ümardab funktsioon sama arvu võrra. Kuid funktsiooni detsimaalne numbriline string väärtus muutub järgmine täisarv number, kui see on võrdne või suurem kui 0,5.
Märkus
täisarvuline väärtus on vahemikus -32,768 aadressile 32,767 Kui me paneme numbrilise väärtuse, mis on väljaspool seda vahemikku , Excel näitab viga .
1.2 String to Long
The CLng funktsioon teisendab numbrilise stringi väärtuse pikk andmetüüp See töötab sarnaselt funktsiooniga CInt. Peamine erinevus seisneb selle vahemik mis on vahemikus -2,147,483,648 ja 2,147,483,647.
Koodi käivitamiseks on siin allpool: Sub StringToNumber() For i = 3 To 9 Cells(i, 3).Value = CLng(Cells(i, 2)) Next End Sub
Siin on rakud B3:B9 sisaldavad mõningaid numbriline string väärtus ja teisendatud l ong numbrid on rakkudes C3:C9. The CLng funktsioon teisendatud -32800 ja 32800 edukalt pikad numbrid mis CInt funktsioon ei saanud. Aga see saab ka viga kui sisend numbriline väärtus on väljaspool ulatust.
1.3 String to Decimal
Kasutades CDec funktsioon me saame teisendada a numbriline string väärtus et decimal datatype. Run järgmine kood teisendada . numbrilised väärtused rakkudes B3:B7 et detsimaalne andmetüüp.
Sub StringToNumber() For i = 3 To 7 Cells(i, 3).Value = CDec(Cells(i, 2)) Next End Sub
1.4 String to Single
Selles näites muudame sisendsõnu järgnevaks üksikandmetüüp (ühe täpsusega ujukomaarvud). Selleks peame kasutama funktsiooni CSng funktsioon .
Ühe andmetüübi vahemikud- (i) -3,402823E38 aadressile -1.401298E-45 . negatiivne numbrid.
(ii) 1.401298E-45 aadressile 3.402823E38 . positiivne numbrid.
Käivitage järgmine kood visual basic redaktoris.
Sub StringToNumber() For i = 3 To 7 Cells(i, 3).Value = CSng(Cells(i, 2)) Next End Sub
Väljundis on lahtrid B3:B9 sisaldavad mõningaid numbriline stringi väärtus, ja teisendatud ühekordse andmetüübiga numbrid on rakkudes C3:C9. Aga see saab ka viga kui sisend numbriline väärtus on väljaspool ulatust.
1.5 String to Double to Double
Selles näites muudame sisendsõnu järgnevaks double andmetüüp (kahe täpsusega ujukomaarvud). Selleks peame kasutama funktsiooni CDbl funktsioon .
Double andmetüübi vahemikud- (i) -1,79769313486231E308 aadressile -4.94065645841247E-324 . negatiivne numbrid.
(ii) 4.94065645841247E-324 aadressile 1.79769313486232E308 . positiivne numbrid.
Käivitage järgmine kood visual basic redaktoris.
Sub StringToNumber() For i = 3 To 7 Cells(i, 3).Value = CSng(Cells(i, 2)) Next End Sub
Väljundis on lahtrid B3:B9 sisaldavad mõningaid numbriline string väärtus ja teisendatud topeltandmetüüpi arvud on rakkudes C3:C9. Aga see saab ka viga kui sisend numbriline väärtus on väljaspool ulatust.
1.6 String kuni valuuta
The valuuta andmetüüp on mugav, kui arvutused on seotud raha Lisaks sellele, kui me tahame suuremat täpsust fikseeritud - punkt arvutus , on valuuta andmetüübi kasutamine hea valik. Meil on vaja kasutada andmetüüpi CCur funktsioon teisendada stringi valuuta andmetüüp Andmetüüp vahemikud aadressilt -922,337,203,685,477.5808 aadressile 922,337,203,685,477.5808.
Kood, et teisendada numbriline string väärtus rakud B3:B7 aadressile valuuta andmetüüp rakkudes C3:C7 on siin allpool.
Sub StringToNumber() For i = 3 To 7 Cells(i, 3).Value = CCur(Cells(i, 2)) Next End Sub
1.7 String to Byte
The CByte funktsioon teisendab numbrilised string-väärtused andmetüüp bait mis ulatub alates 0 kuni 255.
Kood on järgmine :
Sub StringToNumber() For i = 3 To 7 Cells(i, 3).Value = CByte(Cells(i, 2)) Next End Sub
Väljundis on lahtrid B3:B9 sisaldavad mõningaid numbriline stringi väärtus, ja konverteeritud bait-tüüpi andmetüüpi numbrid on rakkudes C3:C9. Aga see saab ka viga kui sisend numbriline väärtus on väljaspool ulatust.
Loe edasi: Kuidas konverteerida string pikaks, kasutades VBA-d Excelis
Sarnased lugemised
- Stringi teisendamine Exceli VBAs kahekordseks (5 meetodit)
- Kuidas teisendada teksti numbriks Exceli VBA abil (3 näidet makroga)
- Exceli numbriks konverteerimise vea parandamine (6 meetodit)
- Kuidas konverteerida teaduslik märkimine Exceli numbriks (7 meetodit)
2. Kohandatud VBA-funktsiooni kasutamine stringi kontrollimiseks ja teisendamiseks numbriks Excelis
Selles illustratsioonis teeme me ühe kohandatud funktsioon stringide teisendamiseks numbriteks. Seejärel saame kasutada see kohandatud funktsioon meie tööleht nagu sisseehitatud funktsioon Selles näites kasutame me funktsiooni CInt funktsioon aadressile teisendada stringid täisarvud luues samal ajal kohandatud funktsioon. Me võiksime kasutada ka kõiki muud funktsioonid kirjeldatud meetod 1 teisendada stringid aadressile erinevad andmetüübid Järgige selleks alljärgnevaid samme.
Sammud:
- Siin, rakkudes B3:B7, meil on mõned numbrilised string-väärtused.
- Nüüd, visual basic redaktoris, koopia ja paste järgmine kood ja seejärel vajutage Ctrl + S aadressile Salvesta
Function StringToNumber(inputStr) Dim convertedNum As Variant If IsNumeric(inputStr) Then If IsEmpty(inputStr) Then convertNum = "-" Else convertNum = CInt(inputStr) End If Else convertNum = "-" End If StringToNumber = convertNum End Function
- Kärgis C3 , alustada kirjutamist . funktsiooni nimi ( StringToNumber ). Excel on soovitab automaatselt . funktsioon kasutada. Press . Tabulaatoriklahv funktsiooni sisestamiseks.
- Pane lahtri viide B3 ainsa argumendina.
- Nüüd vajutage Sisesta pärast sulgude sulgemist.
- Leia Täitmise käepide aadressil parem alumine nurk raku C3 aadressile kohaldatakse funktsioon rakkudele C4:C7.
- Lõplikuks väljundiks on ihaldatud täisarvud stringi väärtustest.
3. VBA-kood valitud lahtrite vahemiku teisendamiseks Exceli numbriteks
Selles illustratsioonis konverteerime me ühe vahemik aadressilt valitud rakud mis sisaldab string-väärtusi täisarvudeks. Kui mõni lahter sisaldab mittenumbriline väärtus, siis väljundiks on kriips (-) joon selle asemel . Järgige sammud :
- Valige lahtrid B3:B6 võttes numbrilised stringid väärtused ja B7 mis sisaldab mittenumbriline
- In the Visual Basic toimetaja koopia ja paste järgmine kood .
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
- Nüüd vajutage F5 aadressile käivitada . väljund nagu on näidatud allpool ekraanipilt .
Märkused
- Me kasutasime isNumeric funktsioon aastal 2. ja 3. meetodid meie VBA-koodis, mis kontrollib, kas väljendit saab teisendada arvuks.
- Veebilehel meetod 1 , kasutasime sisseehitatud funktsioone (CInt, CDbl, CSng.....), et saavutada teisendada numbrilised string-väärtused aadressile numbrid Aga kui on olemas mittenumbriline väärtus näitab see mittevastavuse viga .
Kokkuvõte
Nüüd teame, kuidas teisendada string-väärtusi Excelis numbriteks. Loodetavasti julgustab see teid seda funktsiooni kindlamalt kasutama. Kui teil on küsimusi või ettepanekuid, ärge unustage neid allpool olevasse kommentaarikasti panna.