Endre tekst til tall ved hjelp av VBA

Innholdsfortegnelse:

Anonim

I en nylig oppgave gjorde jeg filter gjennom VBA på en tallkolonne. Men den tallkolonnen hadde tall i tekstformat. Da jeg kjørte VBA -skriptet, fungerte det selvfølgelig ikke, fordi filteret var et tall og kolonnen hadde tall som tekst. I så fall måtte jeg konvertere teksten til tall manuelt og lagre den. Da fungerte makroen perfekt. Men jeg ønsket å konvertere disse tekstene til tall ved hjelp av VBA -skriptet, og jeg klarte det. Jeg ønsket å dele dette som om noen ville vite hvordan man konverterer tekstverdier til et tall ved hjelp av VBA, de kan se på det.

Konverter tekst til tall ved hjelp av metoden Range.NumberFormat

Denne første og enkleste metoden. Jeg foretrekker denne metoden fremfor andre metoder, da den direkte konverterer det valgte excelområdet til tallformat.

Så hvis du har et fast område som du vil konvertere til tekst, bruk denne VBA -kodebiten.

Sub ConvertTextToNumber () Range ("A3: A8"). NumberFormat = "General" Range ("A3: A8"). Value = Range ("A3: A8"). Value End Sub 

Når du kjører koden ovenfor, konverterer den teksten i område A3: A8 til tekst.

Denne koden kan se mer elegant ut hvis vi skriver den slik.

Sub ConvertTextToNumber () Med Range ("A3: A8") .NumberFormat = "General" .Value = .Value End With End Sub 

Hvordan virker det?

Vel, det er ganske enkelt. Vi endrer først tallformatet for området til Generelt. Deretter setter vi verdien av det området i samme område ved hjelp av VBA. Dette fjerner tekstformateringen helt. Enkelt, ikke sant?

Endre antall formateringer for et dynamisk område

I koden ovenfor endret vi teksten til nummer i koden ovenfor for et fast område, men dette vil ikke være tilfellet mesteparten av tiden. For å konvertere tekst til et antall dynamiske områder kan vi evaluere den sist brukte cellen eller velge området dynamisk.

Slik ville det se ut:

Sub ConvertTextToNumber () Med Range ("A3: A" og celler (Rows.Count, 1) .End (xlUp) .Row) .NumberFormat = "General" .Value = .Value Slutt med 

Her vet jeg at rekkevidden starter fra A3. Men jeg vet ikke hvor det kan ende.
Så jeg identifiserer dynamisk sist brukte Excel -rad som har data i seg ved hjelp av VBA -kodebiter (Rows.Count, 1) .End (xlUp) .Row. Det returnerer det siste brukte radnummeret som vi sammenkoble med "A3: A".

Merk: Denne VBA -kodebiten fungerer på den aktive arbeidsboken og det aktive regnearket. Hvis koden din bytter gjennom flere ark, ville det være bedre å angi et områdeobjekt for det tiltenkte regnearket. Som dette

Sub ConvertTextToNumber () Set Rng = ThisWorkbook.Sheets ("Sheet1"). Range ("A3: A" & Cells (Rows.Count, 1). End (xlUp) .Row) With Rng .NumberFormat = "General" .Value = .Value End With End Sub 

Koden ovenfor vil alltid endre teksten til nummeret på arket1 i arbeidsboken som inneholder denne koden.

Sløyfe og CSng for å endre teksten til nummer

En annen metode er å gå gjennom hver celle og endre celleverdien til et tall ved hjelp av CSng -funksjonen. Her er koden.

Sub ConvertTextToNumberLoop () Set Rng = ThisWorkbook.Sheets ("Sheet1"). Range ("A3: A" & Cells (Rows.Count, 1). End (xlUp) .Row) For each cel In Rng.Cells cel.Value = CSng (cel.Value) Neste cel End Sub 

I ovennevnte VBA -utdrag bruker vi VBA For loop for å iterere over hver celle i området og konvertere verdien av hver celle til et tall ved hjelp av CSng -funksjonen til VBA.

Så ja gutta, dette er hvordan du kan endre tekster til tall i Excel ved hjelp av VBA. Du kan bruke disse utdragene til å klargjøre regnearket ditt før du utfører noen talloperasjoner på dem. Jeg håper jeg var forklarende nok. Du kan laste ned arbeidsfilen her.

Endre tekst til tall ved hjelp av VBA.

Hvis du er i tvil om denne teksten til tallkonvertering eller andre Excel/VBA -relaterte spørsmål, kan du spørre i kommentarfeltet nedenfor.

Hvordan få tekst og tall omvendt gjennom VBA i Microsoft Excel | For å reversere tall og tekst bruker vi sløyfer og midtfunksjon i VBA. 1234 vil bli konvertert til 4321, "du" vil bli konvertert til "uoy". Her er utdraget.

Formater data med tilpassede tallformater ved hjelp av VBA i Microsoft Excel | Bruk denne VBA -kodebiten for å endre tallformatet for spesifikke kolonner i excel. Det dekker tallformatet for spesifisert til spesifisert format med ett klikk.

Populære artikler:

50 Excel -snarveier for å øke produktiviteten | Bli raskere på oppgaven din. Disse 50 snarveiene får deg til å jobbe enda raskere med Excel.

VLOOKUP -funksjonen i Excel | Dette er en av de mest brukte og populære funksjonene til excel som brukes til å slå opp verdi fra forskjellige områder og ark.

COUNTIF i Excel 2016 | Tell verdier med betingelser ved hjelp av denne fantastiske funksjonen. Du trenger ikke filtrere dataene dine for å telle spesifikk verdi. Countif -funksjonen er avgjørende for å forberede dashbordet.

Slik bruker du SUMIF -funksjonen i Excel | Dette er en annen viktig funksjon på dashbordet. Dette hjelper deg med å oppsummere verdier på spesifikke forhold.