Note: The other languages of the website are Google-translated. Back to English

Hur tar jag bort icke-numeriska tecken från celler i Excel?

Antag att du har ett kalkylblad med massor av sådan information ABCD4578124YUIOH, och du vill bara ta bort de icke-numeriska tecknen  ABCDYUIOH men behåll de numeriska tecknen i celler. Naturligtvis kan du ta bort dessa tecken en efter en, men just här kan du snabbt bli av med de icke-numeriska tecknen från celler enligt följande:

Ta bort icke-numeriska tecken med VBA-kod

Ett praktiskt verktyg för att ta bort icke-numeriska tecken med ett klick


Ta bort icke-numeriska tecken med VBA-kod

Gör så här för att ta bort icke-numeriska tecken från ett intervall med VBA-kod:

1. Klicka Utvecklare > Visual Basic att öppna Microsoft Visual Basic för applikationer fönster. I Microsoft Visual Basic för applikationer fönstret klickar Insert > Modulerna, och kopiera och klistra sedan in följande koder i modulen:

VBA: Ta bort alla icke-numeriska tecken

Sub RemoveNotNum()
'Updateby Extendoffice
Dim Rng As Range
Dim WorkRng As Range
On Error Resume Next
xTitleId = "KutoolsforExcel"
Set WorkRng = Application.Selection
Set WorkRng = Application.InputBox("Range", xTitleId, WorkRng.Address, Type:=8)
For Each Rng In WorkRng
    xOut = ""
    For i = 1 To Len(Rng.Value)
        xTemp = Mid(Rng.Value, i, 1)
        If xTemp Like "[0-9]" Then
            xStr = xTemp
        Else
            xStr = ""
        End If
        xOut = xOut & xStr
    Next i
    Rng.Value = xOut
Next
End Sub

2. Klicka sedan på -knappen för att köra koden, i pop-up KutoolsforExcel välj ett intervall med de icke-numeriska tecknen du vill ta bort och klicka sedan på OK knapp. Se skärmdump:

doc ta bort icke-numeriska tecken 1 kopia

3. Sedan tas alla icke-numeriska tecken bort i det valda intervallet.

doc ta bort icke-numeriska tecken 2

Om siffrorna med decimaler kan du använda följande VBA:

Sub RemoveNotNum()
'Updateby Extendoffice
Dim Rng As Range
Dim WorkRng As Range
On Error Resume Next
xTitleId = "KutoolsforExcel"
Set WorkRng = Application.Selection
Set WorkRng = Application.InputBox("Range", xTitleId, WorkRng.Address, Type:=8)
For Each Rng In WorkRng
    xOut = ""
    For i = 1 To Len(Rng.Value)
        xTemp = Mid(Rng.Value, i, 1)
        If xTemp Like "[0-9.]" Then
            xStr = xTemp
        Else
            xStr = ""
        End If
        xOut = xOut & xStr
    Next i
    Rng.Value = xOut
Next
End Sub

Du kan se resultaten enligt nedanstående skärmdump:

doc ta bort icke-numeriska tecken 3


Ett praktiskt verktyg för att ta bort icke-numeriska tecken med ett klick

För att ta bort icke-numeriska tecken i ett intervall, Kutools för ExcelÄr Ta bort tecken verktyget kan få det gjort med ett klick.

Kutools för Excel : med mer än 300 praktiska Excel-tillägg, gratis att prova utan begränsning på 30 dagar. 

När du har installerat Kutools för Excel, gör enligt nedan:

1. Markera det område du vill ta bort icke-numeriska tecken. Klick Kutools > text > Ta bort tecken.

doc ta bort icke-numeriska tecken 4

2. I Ta bort tecken dialogrutan, kolla på Icke-numerisk alternativet i Ta bort tecken och klicka sedan på OK or tillämpas knapp. Och de icke-numeriska tecknen tas bort från urvalet omedelbart. Se skärmdump:

doc ta bort icke-numeriska tecken 5

Klicka för att ladda ner Kutools för Excel och gratis testversion nu!

För mer detaljerad information om Ta bort tecken av Kutools för Excel, besök Ta bort beskrivning av teckenfunktioner.


Demo: Ta bort numeriska, alfabetiska, icke-utskrivbara eller alfanumeriska tecken från celler

Kutools för Excel: med mer än 300 praktiska Excel-tillägg, gratis att prova utan begränsning på 30 dagar. Ladda ner och testa gratis nu!

Relaterade artiklar:


De bästa Office-produktivitetsverktygen

Kutools för Excel löser de flesta av dina problem och ökar din produktivitet med 80%

  • återanvändning: Sätt snabbt i komplexa formler, diagram och allt som du har använt tidigare; Kryptera celler med lösenord; Skapa e-postlista och skicka e-post ...
  • Super Formula Bar (enkelt redigera flera rader med text och formel); Läslayout (enkelt läsa och redigera ett stort antal celler); Klistra in i filtrerat intervall...
  • Sammanfoga celler / rader / kolumner utan att förlora data; Delat cellinnehåll; Kombinera duplicerade rader / kolumner... Förhindra duplicerade celler; Jämför intervall...
  • Välj Duplicera eller Unikt Rader; Välj tomma rader (alla celler är tomma); Super Find och Fuzzy Find i många arbetsböcker; Slumpmässigt val ...
  • Exakt kopia Flera celler utan att ändra formelreferens; Skapa referenser automatiskt till flera ark; Sätt in kulor, Kryssrutor och mer ...
  • Extrahera text, Lägg till text, ta bort efter position, Ta bort mellanslag; Skapa och skriva ut personsökningstalsatser; Konvertera mellan celler innehåll och kommentarer...
  • Superfilter (spara och tillämpa filterscheman på andra ark); Avancerad sortering efter månad / vecka / dag, frekvens och mer; Specialfilter av fet, kursiv ...
  • Kombinera arbetsböcker och arbetsblad; Sammanfoga tabeller baserat på nyckelkolumner; Dela data i flera ark; Batchkonvertera xls, xlsx och PDF...
  • Mer än 300 kraftfulla funktioner. Stöder Office / Excel 2007-2019 och 365. Stöder alla språk. Enkel distribution i ditt företag eller organisation. Fullständiga funktioner 30-dagars gratis provperiod. 60-dagars pengarna tillbaka-garanti.
kte-flik 201905

Fliken Office ger ett flikgränssnitt till Office och gör ditt arbete mycket enklare

  • Aktivera flikredigering och läsning i Word, Excel, PowerPoint, Publisher, Access, Visio och Project.
  • Öppna och skapa flera dokument i nya flikar i samma fönster, snarare än i nya fönster.
  • Ökar din produktivitet med 50% och minskar hundratals musklick åt dig varje dag!
officetab botten
Sortera kommentarer efter
Kommentarer (13)
Inga betyg än. Bli först med att betygsätta!
Denna kommentar minimerades av moderatoren på webbplatsen
exempelkod för kommentarer
Denna kommentar minimerades av moderatoren på webbplatsen
tack du fungerade bra
Denna kommentar minimerades av moderatoren på webbplatsen
skulle inte vara bättre att ersätta input-box-metoden genom att bara ställa in WorkRng så här: Set WorkRng = Intersect(ActiveSheet.UsedRange, Selection) på det sättet om användaren väljer en hel kolumn skulle det inte generera något fel.
Denna kommentar minimerades av moderatoren på webbplatsen
Grymt Fungerade JÄTTEBRA!!!!!!!!
Denna kommentar minimerades av moderatoren på webbplatsen
Wow. det fungerade, precis vad jag behövde. Tack,
Denna kommentar minimerades av moderatoren på webbplatsen
Jag fick ett felmeddelande när jag tryckte på > kör-knappen i utvecklaren: Compile Error: Expected: end of statement och ordet "non" i icke-numerisk är markerat
Denna kommentar minimerades av moderatoren på webbplatsen
Använd denna formel för att ersätta det befintliga tecknet med det nya =SUBSTITUTE(text,old_text,new_text,[instans_num]) för ex-=SUBSTITUTE(TRIM(G1),"/","") Önskar er alla Glad Påsk 2015
Denna kommentar minimerades av moderatoren på webbplatsen
Tack killar för ett så fint arbete. Manuset är fantastiskt och det fungerade för. Fortsätt så killar.
Denna kommentar minimerades av moderatoren på webbplatsen
Ville bara låta dig veta att om strängen börjar med noll(or), eller börjar med bokstäver, följt av noll(or), följt av resten av strängen kommer detta att ta bort alla de inledande nollorna. Detta är konstigt eftersom det inte tar bort nollorna om de är mellan andra nummer som inte är noll i strängen, bara om de startar strängen eller är de första siffrorna efter de första bokstäverna i en sträng. Exempel. 0060100 skulle komma ut som 60100 PFF057726 skulle komma ut som 57726. Låt mig veta om du har en förklaring till detta och kan komma på en lösning. Tack.
Denna kommentar minimerades av moderatoren på webbplatsen
Skicka mig det på mitt e-post-ID
Denna kommentar minimerades av moderatoren på webbplatsen
Hej, jag vill använda detta makro men vill fördefiniera ett intervall. Kan du berätta för mig hur man fördefinierar intervallet. Tack, Samit
Denna kommentar minimerades av moderatoren på webbplatsen
VBA fungerar utmärkt. Jag ändrade den så att den alltid fungerar på en kolumn, som visas:

För varje cell i intervallet("B2:B" & ActiveSheet.UsedRange.Rows.Count)

xOut = ""

För i = 1 Till Len(Cell.Value)

xTemp = Mid(Cell.Value, i, 1)

Om xTemp Gillar "[0-9]" Då

xStr = xTemp

annars

xStr = ""

End If

xOut = xOut & xStr

Nästa jag

Cell.Value = xOut

Nästa

Jag använde också detta för att sortera en kolumn efter den sista siffran, ändra den sista delen till Cell.Value = Right(xOut, 1) och sedan sortera den numeriskt.
Denna kommentar minimerades av moderatoren på webbplatsen
HI Tack för kodningen, jag får syntaxfelet markerat på For i = 1 To Len(Rng.Value) och felsökningen Sub RemoveNotNum() är markerad i gult. vänliga råd.
Det finns inga kommentarer här ännu
Lämna dina kommentarer
Postar som gäst
×
Betygsätt detta inlägg:
0   Tecken
Föreslagna platser