Kuinka muuntaa merkkijono numeroksi Excel VBA: ssa (3 menetelmää)

  • Jaa Tämä
Hugh West

Tässä artikkelissa käsitellään useita menetelmiä merkkijonon muuntamiseksi numeroksi Excel VBA:ssa. Näemme, miten sisäänrakennettuja funktioita voidaan käyttää ja miten niiden avulla voidaan luoda mukautettu funktio merkkijonon muuntamiseksi numeroksi VBA-koodiesimerkkien avulla.

Lataa harjoituskirja

Lataa tämä harjoituskirja, jotta voit harjoitella tätä artikkelia lukiessasi.

Muunna merkkijono numeroksi.xlsm

3 tapaa muuntaa merkkijono numeroksi Excel VBA:ssa

1. Muunna merkkijono numeroksi käyttämällä tyyppimuunnosfunktioita

Excel tarjoaa useita sisäänrakennettuja tyyppimuunnosfunktiot Voimme käyttää niitä VBA-koodissamme muuntaa merkkijonotietotyypin helposti eri tietotyypeiksi.

1.1 Merkkijono kokonaisluvuksi

Muunna merkkijono osoitteeseen kokonaisluku , voimme käyttää CInt-toiminto koodissamme. CInt-toiminto kestää vain yksi argumentti ja sen pitäisi olla numeerinen arvo Kokeillaan seuraavaa koodia Visual Code Editorissa.

 Sub StringToNumber() MsgBox CInt(12.3) End Sub 

Paina F5 osoitteeseen ajaa ... koodi Tulos näkyy MsgBox .

CInt-funktio muunnettu ... numeerinen merkkijono arvo ("12.3" ) johonkin kokonaisluku 12.

Ymmärtääksesi enemmän CInt-toiminto , suorita seuraava koodi koodieditorissa ja tarkkailla ... tulokset .

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

The lähtö on tässä seuraavassa kuvakaappaus .

Koodi Selitys

Tässä koodissa käytimme For...Seuraava silmukka soveltaa CInt-toiminto solujoukoista B3:B7. The lähdöt tulostetaan soluihin C3:C7. Käytimme Solujen toiminta määrittää syöttöarvot ja tulostuspaikan tulostusarvoille.

Tulokset

CInt-funktio muunnettu 25.5 ...ja... seuraava kokonaisluku 26 Toisaalta se muunnettu 10.3 osoitteeseen 10, ei 11 Kun desimaalilukuarvo on pienempi kuin .5, funktio pyöristää alaspäin samaan lukuun. Mutta funktio desimaali numeerinen merkkijonoarvo muuttuu seuraava kokonaisluku numero, jos se on yhtä suuri kuin tai suurempi kuin 0,5.

Huomautus

Kokonaislukuarvo vaihtelee välillä -32,768 osoitteeseen 32,767 Jos laitamme numeerisen arvon, joka on tämän alueen ulkopuolella , Excel näyttää virhe .

1.2 String to Long

The CLng-toiminto muuntaa numeerisen merkkijonon arvoksi long datatype Se toimii samalla tavalla kuin CInt-funktio, mutta sen tärkein ero on sen alue joka on välillä -2,147,483,648 ja 2,147,483,647.

 Suoritettava koodi on tässä alla:  Sub StringToNumber() For i = 3 To 9 Cells(i, 3).Value = CLng(Cells(i, 2)) Next End Sub 

Tässä solut B3:B9 sisältää joitakin numeerinen merkkijonoarvo ja muunnettu l ong-numerot ovat soluissa C3:C9. The CLng-toiminto muunnettu -32800 ja 32800 onnistuneesti pitkät numerot jonka CInt-toiminto Mutta se saa myös uudenlaisen virhe jos syöttötiedot numeerinen arvo on kantaman ulkopuolella.

1.3 Merkkijono desimaalilukuun

Käyttämällä CDec-toiminto voimme Muunna a numeerinen merkkijonoarvo a decimal datatype. Run seuraava koodi Muunna ... numeeriset arvot soluissa B3:B7 ...ja... desimaalinen tietotyyppi.

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

1.4 String to Single

Tässä esimerkissä muutamme syötetyt merkkijonot muotoon yksittäinen tietotyyppi (yhden tarkkuuden liukuluvut). Tätä varten meidän on käytettävä komentoa CSng-toiminto .

Yksittäinen tietotyyppi ranges- (i) -3,402823E38 osoitteeseen -1.401298E-45 osoitteessa negatiivinen numerot.

(ii) 1.401298E-45 osoitteeseen 3.402823E38 osoitteessa positiivinen numerot.

Suorita seuraava koodi Visual Basic -editorissa.

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

Tulosteessa solut B3:B9 sisältää joitakin numeerinen merkkijonoarvo, ja muunnetut yhden tietotyypin numerot ovat soluissa C3:C9. Mutta se saa myös virhe jos syöttötiedot numeerinen arvo on kantaman ulkopuolella.

1.5 Merkkijono to Kaksinkertainen

Tässä esimerkissä muutamme syötetyt merkkijonot muotoon double datatype (kaksoistarkkuuden liukuluvut) numeroita. Tätä varten meidän on käytettävä komentoa CDbl-toiminto .

Double-tietotyyppi vaihtelee- (i) -1.79769313486231E308 osoitteeseen -4.94065645841247E-324 osoitteessa negatiivinen numerot.

(ii) 4.94065645841247E-324 osoitteeseen 1.79769313486232E308 osoitteessa positiivinen numerot.

Suorita seuraava koodi Visual Basic -editorissa.

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

Tulosteessa solut B3:B9 sisältää joitakin numeerinen merkkijonoarvo ja muunnetut double-tietotyypin numerot ovat soluissa C3:C9. Mutta se saa myös virhe jos syöttötiedot numeerinen arvo on kantaman ulkopuolella.

1.6 Merkkijono rahaksi

The valuuttatietotyyppi on kätevä, kun laskelmat liittyvät rahaa Lisäksi, jos haluamme enemmän tarkkuutta kiinteä - kohta laskenta , valuuttatietotyypin käyttö on hyvä valinta. Meidän on käytettävä tyyppiä CCur-toiminto muuntaa merkkijonon valuuttatietotyyppi Tietotyyppi alueet osoitteesta -922,337,203,685,477.5808 osoitteeseen 922,337,203,685,477.5808.

Koodi Muunna numeerinen merkkijonoarvo soluja B3:B7 osoitteeseen valuuttatietotyyppi soluissa C3:C7 on täällä alla.

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

1.7 Merkkijono tavuiksi

The CByte-toiminto muuntaa numeeriset merkkijonoarvot tavu tietotyyppi joka vaihtelee välillä 0-255.

Koodi on seuraava :

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

Tulosteessa solut B3:B9 sisältää joitakin numeerinen merkkijonoarvo, ja muunnetut tavutietotyyppiset numerot ovat soluissa C3:C9. Mutta se saa myös virhe jos syöttötiedot numeerinen arvo on kantaman ulkopuolella.

Lue lisää: Kuinka muuntaa merkkijono pitkäksi VBA: n avulla Excelissä

Samanlaisia lukemia

  • Muunna merkkijono kaksinkertaiseksi Excel VBA:ssa (5 menetelmää)
  • Tekstin muuntaminen numeroksi Excel VBA: lla (3 esimerkkiä makroilla)
  • Korjaa Muunna numerovirheeksi Excelissä (6 menetelmää)
  • Kuinka muuntaa tieteellinen merkintä Excelin numeroksi (7 menetelmää)

2. Mukautetun VBA-funktion käyttö merkkijonon tarkistamiseen ja muuntamiseen numeroksi Excelissä

Tässä kuvituksessa teemme seuraavaksi mukautettu toiminto merkkijonojen muuntamiseen numeroiksi. Voimme sitten käytä tämä mukautettu toiminto meidän työlehti kuin sisäänrakennettu toiminto Tässä esimerkissä käytämme komentoa CInt-toiminto osoitteeseen Muunna merkkijonot kokonaisluvut luotaessa mukautettu toiminto. Voisimme myös käyttää kaikkia muut toiminnot kuvattu menetelmä 1 muuntaa jouset osoitteeseen erilaiset tietotyypit Seuraa nyt alla olevia ohjeita tämän toteuttamiseksi.

Vaiheet:

  • Täällä, soluissa B3:B7, meillä on joitakin numeerisia merkkijonoarvoja.

  • Nyt Visual Basic -editorissa, kopioi ja liitä seuraava koodi ja paina sitten Ctrl + S osoitteeseen save
 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 
  • Solussa C3 , aloita kirjoittaminen ... funktion nimi ( StringToNumber ). Excel tekee ehdottaa automaattisesti ... toiminto käyttää. Paina ... Tab-näppäin syöttääksesi toiminnon.

  • Laita soluviite B3 ainoana argumenttina.

  • Paina nyt Kirjoita sulkujen sulkemisen jälkeen.

  • Etsi Täyttökahva osoitteessa oikea alakulma solun C3 osoitteeseen hae toiminto soluihin C4:C7.

  • Lopullinen tuloste on merkkijonoarvojen himoitut kokonaisluvut.

3. VBA-koodi valitun soluvälien muuntamiseksi Excelin numeroiksi Excelissä

Tässä kuvassa muunnamme tiedoston alue of valitut solut sisältäviä merkkijonoarvoja kokonaisluvuiksi. Jos jokin solu sisältää merkin ei-numeerinen arvo siinä, tuloste on viiva (-) sen sijaan . Seuraa vaiheet :

  • Valitse solut B3:B6 jolla on numeeriset merkkijonot arvot ja B7 joka sisältää ei-numeerinen

  • Vuonna Visual Basic Editor kopioi ja liitä seuraavat koodi .
 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 Next cell End Sub 
  • Paina nyt F5 osoitteeseen ajaa ... lähtö kuten seuraavasta käy ilmi kuvakaappaus .

Huomautukset

  • Käytimme isNumeric-funktio vuonna 2. ja 3. menetelmät VBA-koodissamme, joka tarkistaa, voidaanko lauseke muuntaa numeroksi.
  • Osoitteessa menetelmä 1 , käytimme sisäänrakennettuja funktioita (CInt, CDbl, CSng.....), jotta voimme muuntaa numeerisia merkkijonoarvoja osoitteeseen numerot . Mutta jos on olemassa ei-numeerinen arvo , se näyttää virheellinen virhe .

Päätelmä

Nyt tiedämme, miten merkkijonoarvot muunnetaan numeroiksi Excelissä. Toivottavasti se rohkaisee sinua käyttämään tätä toimintoa varmemmin. Jos sinulla on kysyttävää tai ehdotuksia, älä unohda laittaa niitä alla olevaan kommenttikenttään.

Hugh West on erittäin kokenut Excel-kouluttaja ja analyytikko, jolla on yli 10 vuoden kokemus alalta. Hän on koulutukseltaan laskentatoimen ja rahoituksen kandidaatti sekä kauppatieteiden maisteri. Hughilla on intohimo opettamiseen, ja hän on kehittänyt ainutlaatuisen opetusmenetelmän, jota on helppo seurata ja ymmärtää. Hänen asiantuntemuksensa Excelistä on auttanut tuhansia opiskelijoita ja ammattilaisia ​​maailmanlaajuisesti parantamaan taitojaan ja menestymään urallaan. Blogissaan Hugh jakaa tietämyksensä maailman kanssa tarjoamalla ilmaisia ​​Excel-opetusohjelmia ja verkkokoulutusta auttaakseen yksilöitä ja yrityksiä saavuttamaan täyden potentiaalinsa.