Tartalomjegyzék
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á.xlsm3 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.