Sådan konverteres tekst til tal med Excel VBA (3 eksempler med makroer)

  • Del Dette
Hugh West

I Microsoft Excel er det mest almindeligt at arbejde med tal. Nogle gange skal vi behandle et datasæt med store mængder tal. Men du kan komme i en situation, hvor dine tal ligner tekst. Af denne grund kan du ikke tilføje, trække fra, dividere, gange eller udføre nogen form for operation. Det viser altid en fejl, når du forsøger at gøre dette. I denne vejledning vil vi lære dig, hvordan du konverterertekst til tal i Excel ved hjælp af VBA koder med passende eksempler og gode illustrationer.

Download arbejdsbog til øvelser

Download denne arbejdsbog til øvelser

Konverter tekst til tal ved hjælp af VBA.xlsm

Sådan identificeres tal formateret som tekst

Microsoft Excel er smart nok til at forstå forskellen mellem tekst og tal. Den konverterer dem automatisk til deres respektive formater. Men nogle gange kan den ikke gøre det på grund af misbrug og fejlfortolkninger af datasættet. Derfor beholder den tallene som tekster i din projektmappe.

Tag et kig på dette datasæt. Her har vi nogle tal i en kolonne.

Selv om vi har tal i kolonnen, er de alle venstrejusteret ligesom teksten. Klik nu på en vilkårlig celle. Du vil se denne boks ved siden af cellen.

Før nu musemarkøren hen over feltet, hvorefter du vil se denne meddelelse.

Det viser, at cellen er formateret som tekst. På denne måde kan du være sikker på, om cellerne er formateret som tekst eller ej.

3 VBA-koder til konvertering af tekst til tal i Excel

Selv om du nemt kan konvertere tekst til tal manuelt, handler denne vejledning om at konvertere tekst til tal ved hjælp af VBA-koder. Vi anbefaler, at du lærer og anvender alle disse metoder på dit datasæt. Det vil helt sikkert være praktisk i mange situationer.

1. VBA-kode med Range.NumberFormat-metoden til at konvertere tekst til tal i Excel

Denne metode er ret enkel og nem at bruge på ethvert datasæt. Det eneste du skal gøre er at markere området af celler og indsætte det i VBA-kode .

📌 Trin

1. Tryk først på ALT+F11 på dit tastatur for at åbne VBA-editor .

2. Klik på Indsæt> Modul .

3. Indtast derefter følgende kode:

 Sub ConvertTextToNumber() Med Range("B5:B14") .NumberFormat = "General" .Value = .Value End With End Sub 

4. Gem filen.

5. Tryk derefter på ALT+F8 Det åbner den Makro dialogboksen.

6. Vælg ConvertTextToNumber og klik på Kør.

I sidste ende vil denne kode konvertere vores tekst til tal.

Læs mere: Sådan konverteres String til tal i Excel VBA

2. VBA-kode med Loop og CSng til at konvertere tekst til tal

I denne metode bruger vi Loop og CSng funktioner. CSng funktionen tager grundlæggende en hvilken som helst tekst som argument og konverterer den til et enkelt tal. Vores løkke vil gå igennem hver eneste celle i den valgte kolonne. Derefter vil vi sende hver enkelt celles værdi til CSng funktion til at konvertere det fra tekst til tal.

📌 Trin

1. Tryk først på ALT+F11 på dit tastatur for at åbne VBA-editor .

2. Klik på Indsæt> Modul .

3. Indtast derefter følgende kode:

 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. Gem filen.

5. Tryk derefter på ALT+F8 Det åbner den Makro dialogboksen.

6. Vælg ConvertUsingLoop og klik på Kør.

Som du kan se, har vi konverteret vores tekst til tal ved hjælp af denne VBA-kode.

Lignende læsninger

  • Bulk-konvertering af tekst til tal i Excel (6 måder)
  • Sådan konverteres String til Long ved hjælp af VBA i Excel (3 måder)
  • Konverter String til Double i Excel VBA (5 metoder)
  • Sådan løser du fejl i Excel ved at konvertere til tal (6 metoder)

3. Konverter tekst til tal for dynamiske intervaller i Excel

De tidligere metoder var for de valgte intervaller. Det betyder, at du manuelt skal indtaste din række af celler i koden. Men nogle gange kan dit datasæt være stort. I disse tilfælde skal du huske række af celler. Denne metode vil løse det problem. Vi ved, at vores datasæt starter fra Celle B5 Men vi ved ikke, hvor den ender.

Så vi identificerer dynamisk den sidst anvendte Excel-linje med data i den ved hjælp af Cells(Rows.Count, "B").End(xlUp).Row Den returnerer det sidste ikke-tomme rækkenummer, som vi sammenkæder med " B5:B ".

📌 Trin

1. Tryk først på ALT+F11 på dit tastatur for at åbne VBA-editor .

2. Klik på Indsæt > Modul .

3. Indtast derefter følgende kode:

 Sub ConvertDynamicRanges() With Range("B5:B" & Cells(Rows.Count, "B").End(xlUp).Row) .NumberFormat = "General" .Value = .Value End With End Sub 

4. Gem filen.

5. Tryk derefter på ALT+F8 Det åbner den Makro dialogboksen.

6. Vælg derefter ConvertDynamicRanges og klik på Kør.

Som du kan se, er det lykkedes os at konvertere tekst til tal ved hjælp af VBA-koderne.

💬 Ting, du skal huske

✎ Her bruger vi kolonne B til vores datasæt. Hvis dine data er i en anden kolonne, skal du ændre celleområdet i VBA-koderne i overensstemmelse hermed.

✎ VBA-koderne virker kun på det aktive ark.

Konklusion

Afslutningsvis håber jeg, at denne vejledning har givet dig et stykke nyttig viden om konvertering af tekst til tal i Excel ved hjælp af VBA-koder. Vi anbefaler, at du lærer og anvender alle disse instruktioner på dit datasæt. Download øvelsesarbejdsmappen og prøv dem selv. Du er også velkommen til at give feedback i kommentarfeltet. Din værdifulde feedback holder os motiveret til at oprette vejledninger som denne.Glem ikke at tjekke vores websted Exceldemy.com til forskellige Excel-relaterede problemer og løsninger.

Hugh West er en meget erfaren Excel-træner og analytiker med over 10 års erfaring i branchen. Han har en bachelorgrad i regnskab og finans og en kandidatgrad i Business Administration. Hugh har en passion for undervisning og har udviklet en unik undervisningstilgang, der er nem at følge og forstå. Hans ekspertviden om Excel har hjulpet tusindvis af studerende og fagfolk verden over med at forbedre deres færdigheder og udmærke sig i deres karriere. Gennem sin blog deler Hugh sin viden med verden og tilbyder gratis Excel-tutorials og onlinetræning for at hjælpe enkeltpersoner og virksomheder med at nå deres fulde potentiale.