Hogyan alakítsuk át a karakterláncot az Excel VBA számává (3 módszer)

  • Ossza Meg Ezt
Hugh West

Ebben a cikkben több módszert is tárgyalunk a karakterlánc számmá alakítására az Excel VBA-ban. Megnézzük, hogyan használhatjuk a beépített függvényeket, és hogyan hozhatunk létre egy egyéni függvényt ezek felhasználásával a karakterlánc számmá alakításához VBA kódpéldákkal.

Gyakorlati munkafüzet letöltése

Töltse le ezt a gyakorlati munkafüzetet, hogy gyakorolhasson, miközben ezt a cikket olvassa.

String átalakítása számmá.xlsm

3 mód a karakterlánc számmá történő átalakítására az Excel VBA-ban

1. String számmá konvertálása a típuskonverziós függvények használatával

Az Excel számos beépített típuskonverziós függvények A VBA kódunkban használhatjuk őket, hogy könnyen átalakíthassuk a karakterlánc adattípusokat különböző adattípusokká.

1.1 Szövegből egész szám

Átalakítani string a címre. integer , használhatjuk a CInt funkció a kódunkban. CInt funkció csak egy érv és ez egy numerikus érték Próbáljuk ki a következő kódot a Visual Code Editorban.

 Sub StringToNumber() MsgBox CInt(12.3) End Sub 

Sajtó F5 a címre. fuss a kód A kimenet a MsgBox .

A CInt függvény átalakított a numerikus karakterlánc érték ("12.3" ) egy integer 12.

Hogy többet tudjon meg a CInt funkció , futtassa a következő kódot a kódszerkesztőben és figyelje meg a a eredmények .

 Sub StringToNumber() For i = 3 To 7 Cells(i, 3).Value = CInt(Cells(i, 2)) Next End Sub 

A kimenet itt van a következőkben képernyőkép .

Kód Magyarázat

Ebben a kódban a For...Következő ciklus a CInt funkció a cellák sorain B3:B7. A kimenetek a cellákba vannak nyomtatva C3:C7. Mi használtuk a A sejtek működése a bemeneti értékek és a kimeneti értékek nyomtatási helyének megadásához.

Eredmények

A CInt függvény átalakított 25.5 a következő egész szám 26 Másrészt átalakított 10.3 a címre. 10, nem 11 Ha egy tizedes számérték kisebb, mint .5, a függvény ugyanerre a számra kerekít lefelé. De a decimális numerikus karakterlánc értéke a next egész szám szám, ha az egyenlő vagy nagyobb, mint .5.

Megjegyzés:

Az egész szám értéke a következő tartományban van -32,768 a címre. 32,767 Ha egy olyan numerikus értéket adunk meg, amelyik ezen a tartományon kívül , az Excel megjelenít egy hiba .

1.2 String to Long

A CLng funkció egy numerikus karakterlánc értéket alakít át egy long adattípus Hasonlóan működik, mint a CInt függvény. A legfontosabb különbség a CInt függvényben rejlik. tartomány amely a -2,147,483,648 és 2,147,483,647.

 A futtatáshoz szükséges kód itt található:  Sub StringToNumber() For i = 3 To 9 Cells(i, 3).Value = CLng(Cells(i, 2)) Next End Sub 

Itt a sejtek B3:B9 tartalmaznak néhány numerikus string érték , és átalakított l ong számok cellákban vannak C3:C9. A CLng funkció átalakított -32800 és 32800 sikeresen hosszú számok amely a CInt funkció nem tudta. De ez is kap egy hiba ha a bemenet numerikus érték a hatótávon kívül.

1.3 Sztringből tizedes számrendszerbe történő átváltás

A CDec funkció tudunk átalakítani a numerikus string érték egy decimális adattípus. Run a következő kódot a átalakítani a számértékek sejtekben B3:B7 a decimális adattípus.

 Sub StringToNumber() For i = 3 To 7 Cells(i, 3).Value = CDec(Cells(i, 2)) Next End Sub 

1.4 String to Single

Ebben a példában a bemeneti karakterláncokat átalakítjuk egyetlen adattípus (egyszeres pontosságú lebegőpontos) számok. Ehhez használnunk kell a CSng funkció .

Az egyes adattípusok tartományai- (i) -3,402823E38 a címre. -1.401298E-45 a oldalon. negatív számok.

(ii) 1.401298E-45 a címre. 3.402823E38 a oldalon. pozitív számok.

Futtassa a következő kódot a Visual Basic szerkesztőprogramban.

 Sub StringToNumber() For i = 3 To 7 Cells(i, 3).Value = CSng(Cells(i, 2)) Next End Sub 

A kimeneten a cellák B3:B9 tartalmaznak néhány numerikus string érték, és átalakított egyszerű adattípusú számok cellákban vannak C3:C9. De ez is kap egy hiba ha a bemenet numerikus érték a hatótávon kívül.

1.5 String to Dupla to Dupla

Ebben a példában a bemeneti karakterláncokat átalakítjuk double adattípus (kétszeres pontosságú lebegőpontos) számok. Ehhez használnunk kell a CDbl funkció .

A double adattípus ranges- (i) -1,79769313486231E308 a címre. -4.94065645841247E-324 a oldalon. negatív számok.

(ii) 4.94065645841247E-324 a címre. 1.79769313486232E308 a oldalon. pozitív számok.

Futtassa a következő kódot a Visual Basic szerkesztőprogramban.

 Sub StringToNumber() For i = 3 To 7 Cells(i, 3).Value = CSng(Cells(i, 2)) Next End Sub 

A kimeneten a cellák B3:B9 tartalmaznak néhány numerikus string érték és konvertált double adattípusú számok cellákban vannak C3:C9. De ez is kap egy hiba ha a bemenet numerikus érték a hatótávon kívül.

1.6 String to Pénznem

A valuta adattípus hasznos, ha a számítások a pénz Sőt, ha nagyobb pontosságot akarunk a rögzített - pont számítás , a pénznem adattípus használata jó választás. Használnunk kell a CCur funkció egy karakterláncot egy valuta adattípus Az adattípus tartományok a címről -922,337,203,685,477.5808 a címre. 922,337,203,685,477.5808.

Kód a átalakítani numerikus string érték sejtek B3:B7 a címre. valuta adattípus sejtekben C3:C7 itt van alább.

 Sub StringToNumber() For i = 3 To 7 Cells(i, 3).Value = CCur(Cells(i, 2)) Next End Sub 

1.7 String-bájttá alakítás

A CByte funkció a numerikus string értékeket a byte adattípus amely a következő tartományok között mozog 0 és 255 között.

Kód: a következőképpen alakul :

 Sub StringToNumber() For i = 3 To 7 Cells(i, 3).Value = CByte(Cells(i, 2)) Next End Sub 

A kimeneten a cellák B3:B9 tartalmaznak néhány numerikus string érték, és konvertált bájt adattípusú számok cellákban vannak C3:C9. De ez is kap egy hiba ha a bemenet numerikus érték a hatótávon kívül.

Bővebben: Hogyan alakítsuk át a karakterláncot hosszúra a VBA használatával az Excelben

Hasonló olvasmányok

  • String átalakítása kettősre az Excel VBA-ban (5 módszer)
  • Hogyan alakítsuk át a szöveget az Excel VBA-val számokká (3 példa makrókkal)
  • Fix Convert to Number Error az Excelben (6 módszer)
  • Hogyan alakítsuk át a tudományos jelölést az Excel számává (7 módszer)

2. Egyéni VBA-funkció használata az Excelben lévő karakterlánc számmal való ellenőrzéséhez és átalakításához

Ebben az illusztrációban egy olyan egyéni funkció a karakterláncok számokká való átalakítására. Ezután a használja a címet ez egyéni funkció a mi munkalap mint egy beépített funkció Ebben a példában a CInt funkció a címre. átalakítani stringek a egész számok miközben létrehozza a egyéni funkció. Használhatnánk az összes egyéb funkciók leírva a 1. módszer átalakítani stringek a címre. különböző adattípusok Kövesse az alábbi lépéseket, hogy ezt elérje.

Lépések:

  • Itt, a sejtekben B3:B7, van néhány numerikus string értékünk.

  • Most, a Visual Basic szerkesztőben, másolat és paste a következő kódot, majd nyomja meg a Ctrl + S a címre. mentse
 Function StringToNumber(inputStr) Dim convertNum 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 
  • A cellában C3 , elkezd gépelni a funkció neve ( StringToNumber ). Az Excel automatikusan javasolja a funkció használni. Sajtó a Tab billentyű a funkció megadásához.

  • Tegye a cellahivatkozás B3 mint egyetlen érv.

  • Most nyomja meg a Írja be a címet. a zárójelek bezárása után.

  • Keresse meg a Töltse ki a fogantyút a jobb alsó sarok a sejt C3 a címre. alkalmazza a címet. a sejtek funkciója C4:C7.

  • A végső kimenet az áhított egész számok a string értékekből.

3. VBA-kód a cellák kijelölt tartományának számokká történő átalakításához az Excelben

Ebben az illusztrációban átalakítunk egy tartomány a kiválasztott cellák karakterlánc értékeket tartalmazó cellák egész számokká alakíthatók. Ha valamelyik cella egy nem numerikus értéket, a kimenet egy kötőjel (-) vonal helyette . Kövesse a lépések :

  • Cellák kiválasztása B3:B6 a címen. numerikus karakterláncok értékek és B7 amely tartalmaz egy nem numerikus

  • A Visual Basic szerkesztő másolat és paste a következőket kód .
 Sub StringToNumber() Dim convertNum As Variant For Each cell In Selection If IsNumeric(cell) Then If IsEmpty(cell) Then convertNum = "-" Else convertNum = CInt(cell) End If Else convertNum = "-" End If With cell .Value = convertNum.HorizontalAlignment = xlCenter End With Következő cellával End Sub 
  • Most nyomja meg a F5 a címre. fuss a kimenet a következők szerint képernyőkép .

Megjegyzések

  • Mi használtuk a isNumeric függvény a 2. és 3. módszerek a VBA kódunkban, amely ellenőrzi, hogy egy kifejezés számmá alakítható-e.
  • A oldalon. 1. módszer , beépített függvényeket (CInt, CDbl, CSng.....) használtunk, hogy numerikus karakterlánc értékek átalakítása a címre. számok De ha van egy nem numerikus érték , akkor megjelenik egy hiba az egyezésben .

Következtetés

Most már tudjuk, hogyan lehet a karakterlánc értékeket számokká konvertálni az Excelben. Remélhetőleg ez arra ösztönzi Önt, hogy magabiztosabban használja ezt a funkciót. Bármilyen kérdése vagy javaslata van, ne felejtse el beírni az alábbi megjegyzés rovatba.

Hugh West nagy tapasztalattal rendelkező Excel-oktató és elemző, több mint 10 éves tapasztalattal az iparágban. Számvitel és pénzügy szakos alapdiplomát, valamint üzleti adminisztrációból mesterképzést szerzett. Hugh szenvedélye a tanítás, és egyedülálló tanítási megközelítést dolgozott ki, amely könnyen követhető és érthető. Az Excelben szerzett szakértői tudása világszerte több ezer diáknak és szakembernek segített abban, hogy készségeiket és karrierjüket kiválóan teljesítsék. Hugh blogján keresztül megosztja tudását a világgal, ingyenes Excel-oktatóanyagokat és online képzéseket kínálva, hogy segítse az egyéneket és a vállalkozásokat teljes potenciáljuk kibontakoztatásában.