Ako previesť reťazec na číslo v programe Excel VBA (3 metódy)

  • Zdieľajte To
Hugh West

V tomto článku sa budeme venovať niekoľkým metódam prevodu reťazca na číslo v programe Excel VBA. Uvidíme, ako použiť vstavané funkcie a vytvoriť pomocou nich vlastnú funkciu na prevod reťazca na číslo s príkladmi kódu VBA.

Stiahnite si cvičebnicu

Stiahnite si tento cvičebný zošit, aby ste si počas čítania tohto článku precvičili svoje zručnosti.

Previesť reťazec na číslo.xlsm

3 spôsoby prevodu reťazca na číslo v programe Excel VBA

1. Prevod reťazca na číslo pomocou funkcií na konverziu typu

Excel poskytuje niekoľko vstavaných funkcie konverzie typu . Môžeme ich použiť v našom kóde VBA na jednoduchý prevod z reťazcového dátového typu na rôzne dátové typy.

1.1 Prevod reťazca na celé číslo

Prevod reťazec na celé číslo , môžeme použiť Funkcia CInt v našom kóde. Funkcia CInt trvá len jeden argument a to by malo byť číselná hodnota . Vyskúšajme nasledujúci kód v editore Visual Code Editor.

 Sub StringToNumber() MsgBox CInt(12.3) End Sub 

Tlač F5 na spustiť . kód Výstup je zobrazený v MsgBox .

Funkcia CInt konvertované . číselný reťazec hodnota ("12.3" ) na celé číslo 12.

Ak chcete pochopiť viac o Funkcia CInt , spustite nasledujúci kód v editore kódu a pozorovať . výsledky .

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

Stránka výstup je tu v nasledujúcom snímka obrazovky .

Vysvetlenie kódu

V tomto kóde sme použili Pre...Ďalšia slučka použiť Funkcia CInt na reťazcoch buniek B3:B7. Stránka výstupy sú vytlačené v bunkách C3:C7. Použili sme Funkcia buniek na zadanie vstupných hodnôt a miesta, kde sa majú vytlačiť výstupné hodnoty.

Výsledky

Funkcia CInt v prepočte 25,5 na ďalšie celé číslo 26 Na druhej strane konvertované 10.3 na 10, nie 11 Ak je desatinná číselná hodnota menšia ako 0,5, funkcia zaokrúhľuje nadol na rovnaké číslo. desatinné číslo číselná reťazcová hodnota sa zmení na ďalšie celé číslo číslo, ak je sa rovná alebo väčšia ako 0,5.

Poznámka

Celočíselná hodnota má rozsah medzi -32,768 na 32,767 Ak vložíme číselnú hodnotu, ktorá je mimo tohto rozsahu , Excel zobrazí chyba .

1.2 Prevod reťazca na dlhý

Stránka Funkcia CLng konvertuje číselnú reťazcovú hodnotu na dátový typ long Funguje podobne ako funkcia CInt. Hlavný rozdiel spočíva v jej rozsah ktorá sa nachádza medzi -2,147,483,648 a 2,147,483,647.

 Kód na spustenie je uvedený nižšie:  Sub StringToNumber() For i = 3 To 9 Cells(i, 3).Value = CLng(Cells(i, 2)) Next End Sub 

Tu sa bunky B3:B9 obsahujú niektoré číselná hodnota reťazca a konvertované l čísla sú v bunkách C3:C9. Stránka Funkcia CLng konvertované -32800 a 32800 úspešne na dlhé čísla ktoré Funkcia CInt nemohol. Ale to bude tiež získať chyba ak je vstup číselná hodnota je . mimo dosahu.

1.3 Prevod reťazca na desatinné číslo

Použitie Funkcia CDec môžeme konvertovať a číselná hodnota reťazca na desatinný dátový typ. nasledujúci kód na konvertovať . číselné hodnoty v bunkách B3:B7 na desatinný dátový typ.

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

1.4 Reťazec na jednotku

V tomto príklade zmeníme vstupné reťazce na jeden dátový typ (čísla s plávajúcou rádovou čiarkou s jednou presnosťou). Na tento účel musíme použiť Funkcia CSng .

Jediný dátový typ ranges- (i) -3,402823E38 na -1.401298E-45 pre negatívne čísla.

(ii) 1.401298E-45 na 3.402823E38 pre pozitívne čísla.

V editore Visual Basic spustite nasledujúci kód.

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

Na výstupe sú bunky B3:B9 obsahujú niektoré číselná reťazcová hodnota, a konvertované čísla jednoduchého dátového typu sú v bunkách C3:C9. Ale dostane aj chyba ak je vstup číselná hodnota je . mimo dosahu.

1.5 Reťazec na Dvojitý

V tomto príklade zmeníme vstupné reťazce na dátový typ double (čísla s plávajúcou rádovou čiarkou s dvojitou presnosťou). Na tento účel musíme použiť Funkcia CDbl .

Rozsahy dátového typu double- (i) -1,79769313486231E308 na -4.94065645841247E-324 pre negatívne čísla.

(ii) 4.94065645841247E-324 na 1.79769313486232E308 pre pozitívne čísla.

V editore Visual Basic spustite nasledujúci kód.

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

Na výstupe sú bunky B3:B9 obsahujú niektoré číselná hodnota reťazca a konvertované čísla s dvojitým dátovým typom sú v bunkách C3:C9. Ale dostane aj chyba ak je vstup číselná hodnota je . mimo dosahu.

1.6 Premena reťazca na menu

Stránka typ údajov meny sa hodí, keď sa výpočty týkajú peniaze Okrem toho, ak chceme väčšiu presnosť v pevné - bod výpočet , je použitie dátového typu mena dobrou voľbou. Musíme použiť Funkcia CCur na konverziu reťazca na typ údajov meny Typ údajov rozsahy z adresy -922,337,203,685,477.5808 na 922,337,203,685,477.5808.

Kód na konvertovať číselná reťazcová hodnota buniek B3:B7 na typ údajov meny v bunkách C3:C7 je tu nižšie.

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

1.7 Premena reťazca na bajt

Stránka Funkcia CByte konvertuje číselné reťazcové hodnoty na dátový typ byte ktorá sa pohybuje od 0 až 255.

Kód je nasledovný :

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

Na výstupe sú bunky B3:B9 obsahujú niektoré číselná reťazcová hodnota, a konvertované čísla dátového typu byte sú v bunkách C3:C9. Ale dostane aj chyba ak je vstup číselná hodnota je . mimo dosahu.

Prečítajte si viac: Ako previesť reťazec na dlhý pomocou VBA v programe Excel

Podobné čítania

  • Prevod reťazca na dvojnásobok v programe Excel VBA (5 metód)
  • Ako previesť text na číslo pomocou programu Excel VBA (3 príklady s makrami)
  • Oprava chyby prevodu na číslo v programe Excel (6 metód)
  • Ako previesť vedecký zápis na číslo v programe Excel (7 metód)

2. Použitie vlastnej funkcie VBA na kontrolu a prevod reťazca na číslo v programe Excel

Na tomto obrázku vytvoríme vlastná funkcia na konverziu reťazcov na čísla. Potom môžeme používať tento vlastná funkcia v našom pracovný list ako vstavaná funkcia V tomto príklade použijeme Funkcia CInt na konvertovať reťazce na celé čísla pri vytváraní vlastná funkcia. Mohli by sme tiež použiť všetky iné funkcie opísané v metóda 1 na konverziu reťazce na rôzne typy údajov . Teraz postupujte podľa nasledujúcich krokov, aby ste to dosiahli.

Kroky:

  • Tu, v bunkách B3:B7, máme niekoľko číselných reťazcových hodnôt.

  • Teraz v editore Visual Basic, kopírovať a vložte nasledujúci kód a potom stlačte Ctrl + S na uložiť
 Funkcia 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 
  • V bunke C3 , začať písať . názov funkcie ( StringToNumber ). Excel bude automaticky navrhnúť . funkcia používať. Tlač . Kláves Tab na zadanie funkcie.

  • Vložte odkaz na bunku B3 ako jediný argument.

  • Teraz stlačte Vstúpte na stránku po uzavretí zátvoriek.

  • Vyhľadajte Rukoväť náplne na pravý dolný roh bunky C3 na použiť funkciu na bunky C4:C7.

  • Konečným výstupom sú požadované celé čísla z reťazcových hodnôt.

3. Kód VBA na prevod vybraného rozsahu buniek na čísla v programe Excel

Na tomto obrázku prevedieme rozsah z vybrané bunky obsahujúce reťazcové hodnoty na celé čísla. Ak niektorá bunka obsahuje nečíselné hodnota v ňom, výstupom bude pomlčka (-) namiesto toho . Nasledujte kroky :

  • Vybrať bunky B3:B6 s číselné reťazce hodnoty a B7 ktorý obsahuje nečíselné

  • V Editor jazyka Visual Basic kopírovať a vložte nasledujúce kód .
 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 Ďalšia bunka End Sub 
  • Teraz stlačte F5 na spustiť . výstup ako je znázornené na nasledujúcom obrázku snímka obrazovky .

Poznámky

  • Použili sme funkcia isNumeric v 2. a 3. metódy v našom kóde VBA, ktorý kontroluje, či výraz možno previesť na číslo.
  • Na stránke metóda 1 , sme použili vstavané funkcie (CInt, CDbl, CSng.....) na previesť číselné reťazcové hodnoty na čísla . Ale ak je nečíselná hodnota , zobrazí sa chyba nesúladu .

Záver

Teraz už vieme, ako previesť reťazcové hodnoty na čísla v programe Excel. Dúfajme, že vás to povzbudí k istejšiemu používaniu tejto funkcie. Akékoľvek otázky alebo návrhy nezabudnite uviesť do komentára nižšie.

Hugh West je veľmi skúsený tréner a analytik Excelu s viac ako 10-ročnými skúsenosťami v tomto odvetví. Má bakalársky titul v odbore účtovníctvo a financie a magisterský titul v odbore Business Administration. Hugh má vášeň pre vyučovanie a vyvinul jedinečný vyučovací prístup, ktorý sa dá ľahko sledovať a pochopiť. Jeho odborné znalosti Excelu pomohli tisíckam študentov a profesionálov na celom svete zlepšiť svoje zručnosti a vyniknúť vo svojej kariére. Hugh sa prostredníctvom svojho blogu delí o svoje znalosti so svetom a ponúka bezplatné výukové programy Excelu a online školenia, ktoré jednotlivcom a firmám pomôžu naplno využiť ich potenciál.