Innehållsförteckning
I Microsoft Excel är det vanligast att arbeta med siffror. Ibland måste vi bearbeta ett dataset med stora mängder siffror. Men du kan hamna i en situation där siffrorna ser ut som text. Av den anledningen kan du inte lägga till, subtrahera, dividera, multiplicera eller utföra någon form av operation. Det visar alltid ett fel när du försöker göra detta. I den här handledningen kommer vi att lära dig hur man konverterartext till nummer i Excel med hjälp av VBA koder med lämpliga exempel och illustrationer.
Ladda ner övningsboken
Ladda ner arbetsboken
Konvertera text till siffror med hjälp av VBA.xlsm
Hur man identifierar siffror som formaterats som text
Microsoft Excel är tillräckligt smart för att förstå skillnaden mellan text och tal och konverterar dem automatiskt till sina respektive format. Men ibland kan det inte göras på grund av missbruk och feltolkningar av datamängden. Därför behåller den siffrorna som text i arbetsboken.
Ta en titt på det här datasetet. Här har vi några siffror i en kolumn.
Även om vi har siffror i kolumnen är de alla vänsterjusterade som texten. Klicka nu på en valfri cell och den här rutan visas bredvid cellen.
För nu muspekaren över rutan och du kommer att se det här meddelandet.
Det visar att cellen är formaterad som text. På så sätt kan du vara säker på om cellerna är formaterade som text eller inte.
3 VBA-koder för att konvertera text till tal i Excel
Även om du enkelt kan konvertera text till siffror manuellt, handlar den här handledningen om att konvertera text till siffror med hjälp av VBA-koder. Vi rekommenderar att du lär dig och tillämpar alla dessa metoder på ditt dataset. Det kommer säkert att vara till nytta i många situationer.
1. VBA-kod med Range.NumberFormat-metoden för att konvertera text till nummer i Excel
Den här metoden är ganska enkel och lätt att använda på alla dataset. Allt du behöver göra är att välja ett cellområde och infoga det i VBA-kod .
📌 Steg
1. Tryck först på ALT+F11 på tangentbordet för att öppna VBA-redigerare .
2. Klicka på Infoga> Modul .
3. Skriv sedan följande kod:
Sub ConvertTextToNumber() Med Range("B5:B14") .NumberFormat = "General" .Value = .Value End With End Sub
4. Spara filen.
5. Tryck sedan på ALT+F8 Det öppnar Makro dialogrutan.
6. Välj ConvertTextToNumber och klicka på Kör.
I slutändan omvandlar den här koden vår text till siffror.
Läs mer: Hur man konverterar sträng till nummer i Excel VBA
2. VBA-kod med Loop och CSng för att konvertera texten till nummer
I den här metoden använder vi Slinga och CSng funktioner. CSng funktionen tar i princip vilken text som helst som argument och omvandlar den till ett enda tal. Vår slinga kommer att gå igenom varje cell i den valda kolumnen. Därefter kommer vi att skicka varje cells värde till CSng funktionen för att omvandla den från text till tal.
📌 Steg
1. Tryck först på ALT+F11 på tangentbordet för att öppna VBA-redigerare .
2. Klicka på Infoga> Modul .
3. Skriv sedan följande kod:
Sub ConvertUsingLoop() For Each r In Sheets("Loop&CSng").UsedRange.SpecialCells(xlCellTypeConstants) If IsNumeric(r) Then r.Value = CSng(r.Value) r.NumberFormat = "General" End If Next End Sub
4. Spara filen.
5. Tryck sedan på ALT+F8 Det öppnar Makro dialogrutan.
6. Välj ConvertUsingLoop och klicka på Kör.
Som du kan se har vi omvandlat vår text till siffror med hjälp av denna VBA-kod.
Liknande läsningar
- Konvertera text till nummer i Excel i bulk (6 sätt)
- Hur man konverterar sträng till lång med VBA i Excel (3 sätt)
- Konvertera sträng till dubbel i Excel VBA (5 metoder)
- Hur du åtgärdar felet Konvertera till nummer i Excel (6 metoder)
3. Konvertera text till siffror för dynamiska intervall i Excel
De tidigare metoderna gällde valda intervall. Det innebär att du måste ange ditt intervall av celler manuellt i koden. Men ibland kan ditt dataset vara stort. I dessa fall måste du komma ihåg intervallet av celler. Den här metoden kommer att lösa det problemet. Vi vet att vårt dataset börjar från Cell B5 Men vi vet inte var den kan sluta.
Så vi identifierar dynamiskt den senast använda Excel-raden med data i den med hjälp av Cells(Rows.Count, "B").End(xlUp).Row
Den returnerar det sista icke-tomma radnumret som vi sammanfogar med " B5:B ".
📌 Steg
1. Tryck först på ALT+F11 på tangentbordet för att öppna VBA-redigerare .
2. Klicka på Infoga > Modul .
3. Skriv sedan följande kod:
Sub ConvertDynamicRanges() Med Range("B5:B" & Cells(Rows.Count, "B").End(xlUp).Row) .NumberFormat = "General" .Value = .Value End With End Sub
4. Spara filen.
5. Tryck sedan på ALT+F8 Det öppnar Makro dialogrutan.
6. Välj sedan ConvertDynamicRanges och klicka på Kör.
Som du kan se har vi lyckats konvertera text till siffror med hjälp av VBA-koderna.
💬 Saker att komma ihåg
✎ Här använder vi kolumn B för vårt dataset. Om dina data finns i en annan kolumn ändrar du cellintervallet i VBA-koderna i enlighet med detta.
✎ VBA-koderna fungerar endast på det aktiva bladet.
Slutsats
Avslutningsvis hoppas jag att den här handledningen har gett dig användbar kunskap om att konvertera text till siffror i Excel med hjälp av VBA-koder. Vi rekommenderar att du lär dig och tillämpar alla dessa instruktioner på ditt dataset. Ladda ner övningsarbetsboken och prova dem själv. Du får också gärna ge feedback i kommentarsfältet. Din värdefulla feedback håller oss motiverade att skapa handledningar som denna.Glöm inte att besöka vår webbplats Exceldemy.com för olika Excel-relaterade problem och lösningar.