Ändra text till nummer med hjälp av VBA

Innehållsförteckning:

Anonim

I en ny uppgift gjorde jag filter genom VBA på en talkolumn. Men den talkolumnen hade siffror i textformat. När jag körde VBA -skriptet fungerade det naturligtvis inte, eftersom filtret var ett tal och kolumnen hade siffror som text. I så fall behövde jag konvertera texten till siffror manuellt och spara den. Då fungerade makrot perfekt. Men jag ville konvertera dessa texter till siffror med hjälp av VBA -skriptet och jag kunde göra det. Jag ville dela detta som om någon ville veta hur man konverterar textvärden till ett nummer med hjälp av VBA, de kan titta på det.

Konvertera text till tal med metoden Range.NumberFormat

Denna första och enklaste metod. Jag föredrar denna metod framför andra metoder eftersom den direkt konverterar det valda excelområdet till talformat.

Så om du har ett fast intervall som du vill konvertera till text, använd det här VBA -utdraget.

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

När du kör ovanstående kod omvandlar den texten från område A3: A8 till text.

Denna kod kan se mer elegant ut om vi skriver det så här.

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

Hur fungerar det?

Tja, det är ganska enkelt. Vi ändrar först nummerformatet för intervallet till Allmänt. Sedan sätter vi värdet på det intervallet i samma intervall med VBA. Detta tar bort textformateringen helt. Enkelt, eller hur?

Ändra antalet formateringar för ett dynamiskt område

I koden ovan ändrade vi texten till nummer i ovanstående kod för ett fast intervall men det kommer inte att vara fallet för det mesta. För att konvertera text till ett antal dynamiska intervall kan vi utvärdera den senast använda cellen eller välja intervallet dynamiskt.

Så här skulle det se ut:

Sub ConvertTextToNumber () Med intervall ("A3: A" och celler (rader.räkning, 1) .Slut (xlUp) .Rad) .NumberFormat = "Allmänt" .Value = .Värde Avsluta med 

Här vet jag att intervallet börjar från A3. Men jag vet inte var det kan sluta.
Så jag identifierar dynamiskt den senast använda Excel -raden som har data i den med hjälp av VBA -snippet Cells (Rows.Count, 1) .End (xlUp) .Row. Det returnerar det senast använda radnumret som vi sammanfogar med "A3: A".

Notera: Detta VBA -utdrag fungerar på den aktiva arbetsboken och det aktiva kalkylbladet. Om din kod växlar mellan flera ark, är det bättre att ställa in ett intervallobjekt för det avsedda kalkylbladet. Så här

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 

Ovanstående kod kommer alltid att ändra texten till numret på arket1 i arbetsboken som innehåller denna kod.

Loop och CSng för att ändra texten till nummer

En annan metod är att gå igenom varje cell och ändra cellvärdet till ett nummer med hjälp av CSng -funktionen. Här är 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) Nästa cel End Sub 

I ovanstående VBA -kodavsnitt använder vi VBA For -loop för att iterera över varje cell i intervallet och konvertera värdet för varje cell till ett nummer med hjälp av CSng -funktionen i VBA.

Så ja killar, så här kan du ändra texter till siffror i Excel med VBA. Du kan använda dessa utdrag för att förbereda ditt kalkylblad innan du gör några nummeroperationer på dem. Jag hoppas att jag var tillräckligt förklarande. Du kan ladda ner arbetsfilen här.

Ändra text till nummer med hjälp av VBA.

Om du har några tvivel angående denna text till nummerkonvertering eller någon annan Excel/VBA -relaterad fråga, fråga i kommentarfältet nedan.

Så här får du text och nummer i omvänt genom VBA i Microsoft Excel | För att vända tal och text använder vi loopar och mittfunktion i VBA. 1234 kommer att konverteras till 4321, "du" kommer att konverteras till "uoy". Här är utdraget.

Formatera data med anpassade nummerformat med VBA i Microsoft Excel | Om du vill ändra nummerformatet för specifika kolumner i excel använder du detta VBA -kodavsnitt. Det täcker nummerformatet för specificerat till specificerat format med ett klick.

Populära artiklar:

50 Excel -genvägar för att öka din produktivitet | Bli snabbare på din uppgift. Dessa 50 genvägar får dig att arbeta ännu snabbare med Excel.

VLOOKUP -funktionen i Excel | Detta är en av de mest använda och populära Excel -funktionerna som används för att leta upp värde från olika intervall och ark.

COUNTIF i Excel 2016 | Räkna värden med förhållanden med denna fantastiska funktion. Du behöver inte filtrera dina data för att räkna specifikt värde. Countif -funktionen är avgörande för att förbereda din instrumentpanel.

Hur man använder SUMIF -funktionen i Excel | Detta är en annan viktig instrumentpanel. Detta hjälper dig att summera värden på specifika förhållanden.