Hoppa till huvudinnehåll

Hur förhindrar man att specialtecken kommer in i Excel?

I vissa fall vill vi bara ange bokstäver eller siffror i celler och förhindra att specialtecken skrivs, som @ # $% & så vidare. Finns det några funktioner i Excel för att förhindra att specialtecken matas in när vi sätter in värden?

Förhindra att specialtecken kommer in med datavalidering

Förhindra att specialtecken kommer in med VBA-kod

Förhindra att specialtecken kommer in med Kutools för Excel bra idé3


Förhindra att specialtecken kommer in med datavalidering

Excel 'Data Validation kan hjälpa dig att bara ange de alfanumeriska värdena. Gör så här:

1. Välj ett område som du vill förhindra att specialtecken matas in.

2. Klicka sedan Data > Datagransknings > Datagransknings, se skärmdump:

doc-prevent-characters-1

3. I Datagransknings dialogrutan, klicka Inställningar fliken och välj Custom från Tillåt rullgardinsmeny och ange sedan denna formel =ISNUMBER(SUMPRODUCT(SEARCH(MID(A1,ROW(INDIRECT("1:"&LEN(A1))),1),"0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"))) i Formel textruta, se skärmdump:

Notera:A1 anger den första cellen i det valda intervallet (från vänster till höger).

doc-prevent-characters-1

4. Klicka sedan OK för att stänga den här dialogrutan och nu när du anger värden som innehåller specialtecken i den angivna kolumnen har du tillämpa alternativet får du följande varningsmeddelande.

doc-prevent-characters-1


Förhindra att specialtecken kommer in med VBA-kod

Följande VBA-kod kan också hjälpa dig att förhindra specialtecken när du anger textvärden.

1. Håll ner ALT + F11 knapparna och det öppnar Microsoft Visual Basic for Applications-fönstret.

2. Välj sedan ditt använda kalkylblad från vänster Project Explorerdubbelklicka på den för att öppna Modulernaoch sedan kopiera och klistra in följande VBA-kod i tomt Modulerna:

VBA-kod: förhindra att specialtecken kommer in i Excel

Private Const FCheckRgAddress As String = "A1:A100"
Private Sub Worksheet_Change(ByVal Target As Range)
'Update 20140905
    Dim xChanged As Range
    Dim xRg As Range
    Dim xString As String
    Dim sErrors As String
    Dim xRegExp As Variant
    Dim xHasErr As Boolean
    Set xChanged = Application.Intersect(Range(FCheckRgAddress), Target)
    If xChanged Is Nothing Then Exit Sub
    Set xRegExp = CreateObject("VBScript.RegExp")
    xRegExp.Global = True
    xRegExp.IgnoreCase = True
    xRegExp.Pattern = "[^0-9a-z]"
    For Each xRg In xChanged
        If xRegExp.Test(xRg.Value) Then
            xHasErr = True
            Application.EnableEvents = False
            xRg.ClearContents
            Application.EnableEvents = True
        End If
    Next
    If xHasErr Then MsgBox "These cells had invalid entries and have been cleared:"
End Sub

doc-prevent-characters-1

Anmärkningar: I koden ovan kan du ändra intervallet A1: A100 of Privat Const FCheckRgAddress As String = "A1: A100" skript till ditt eget intervall som du vill förhindra specialtecken.

3. Spara och stäng sedan den här koden, och nu när du anger textvärden med några specialtecken i intervallet A1: A100 kommer ditt värde att rensas omedelbart och du kan få följande varningsmeddelande.

doc-prevent-characters-1


Förhindra att specialtecken kommer in med Kutools för Excel

Egentligen, om du har Kutools för Excel - ett praktiskt och multifunktionellt verktyg, du kan snabbt förhindra att skriva specialtecken i ett urval med dess Förhindra skrivning med en kontroll.

Kutools för Excel, med mer än 300 praktiska funktioner, gör dina jobb enklare. 

När du har installerat Kutools för Excel, gör så här :(Gratis nedladdning Kutools för Excel nu!)

1. Välj ett val som du vill förhindra att specialtecken skriver och klicka på Kutools > Förhindra skrivning > Förhindra skrivning. Se skärmdump:
doc förhindra tecken 10

2. I Förhindra skrivning dialogrutan, kontrollera Förhindra att du skriver in specialtecken alternativ. Se skärmdump:
doc förhindra tecken 7

3. klick Ok, och en dialog dyker upp för att påminna dig om att det tar bort datavalidering om du använder detta verktyg och klickar på Ja för att gå till nästa dialog kommer det att påminna dig om att verktyget har arbetat i avsnittet. se skärmdump:
doc förhindra tecken 8

4. klick OK för att stänga dialogen och från och med nu dyker det upp en varningsdialog när du försöker ange ett specialtecken i valet.
doc förhindra tecken 9

Tips.Om du vill sluta skriva dubbla värden i en kolumn, försök att använda Kutools för Excel Förhindra duplicering som visas i följande skärmdump. Det är full funktion utan begränsning på 30 dagar, vänligen ladda ner och få en gratis provperiod nu.

doc förhindrar duplikat doc kutools förhindrar att skriva 2


Relaterade artiklar:

Hur förhindrar man att ange värden med mellanslag i Excel?

Hur förhindrar man dubbletter i en kolumn i Excel?

Bästa kontorsproduktivitetsverktyg

Populära funktioner: Hitta, markera eller identifiera dubbletter   |  Ta bort tomma rader   |  Kombinera kolumner eller celler utan att förlora data   |   Rund utan formel ...
Superuppslag: Flera kriterier VLookup    VLookup med flera värden  |   VSök över flera ark   |   Fuzzy Lookup ....
Avancerad rullgardinslista: Skapa snabbt en rullgardinslista   |  Beroende rullgardinslista   |  Flervals-rullgardinslista ....
Kolumnhanterare: Lägg till ett specifikt antal kolumner  |  Flytta kolumner  |  Växla synlighetsstatus för dolda kolumner  |  Jämför intervall och kolumner ...
Utvalda funktioner: Rutnätsfokus   |  Designvy   |   Stor formelbar    Arbetsbok & Bladhanterare   |  Resursbibliotek (Automatisk text)   |  Datumväljare   |  Kombinera arbetsblad   |  Kryptera/Dekryptera celler    Skicka e-postmeddelanden efter lista   |  Superfilter   |   Specialfilter (filtrera fet/kursiv/genomstruken...) ...
Topp 15 verktygssatser12 text verktyg (lägga till text, Ta bort tecken, ...)   |   50 + Diagram Typer (Gantt Chart, ...)   |   40+ Praktiskt Formler (Beräkna ålder baserat på födelsedag, ...)   |   19 Införande verktyg (Infoga QR-kod, Infoga bild från sökväg, ...)   |   12 Konvertering verktyg (Siffror till ord, Valutaväxling, ...)   |   7 Slå ihop och dela verktyg (Avancerade kombinera rader, Dela celler, ...)   |   ... och mer

Uppgradera dina Excel-färdigheter med Kutools för Excel och upplev effektivitet som aldrig förr. Kutools för Excel erbjuder över 300 avancerade funktioner för att öka produktiviteten och spara tid.  Klicka här för att få den funktion du behöver mest...

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 för dig varje dag!
Comments (12)
No ratings yet. Be the first to rate!
This comment was minimized by the moderator on the site
Pessoal, segue formul em portugês com a quantidade de caracteres limitada a 7:

=E(ÉNÚM(SOMARPRODUTO(LOCALIZAR(EXT.TEXTO(A1;LIN(INDIRETO("1:"&NÚM.CARACT(A1)));1);"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ ")));NÚM.CARACT(A1)<8)
This comment was minimized by the moderator on the site
Excelente solucion. como agregas las comillas (") para que sean admitidas?
This comment was minimized by the moderator on the site
Hello herber,

Glad to help. Using the first method, you can use this formula in data validation:
=ISNUMBER(SUMPRODUCT(SEARCH(MID(A1,ROW(INDIRECT("1:"&LEN(A1))),1),"0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"&CHAR(34))))

The CHAR function takes the ASCII value and returns the corresponding character value. The ASCII value for a double quote is 34. So a double quote will be allowed. Please have a try.

Sincerely,
Mandy
This comment was minimized by the moderator on the site
How to repeat this in other columns?
This comment was minimized by the moderator on the site
When I use your VBA code in excel 2013 it will open up debug option and freezes
This comment was minimized by the moderator on the site
Hi, WilY, if it pops out a dialog as below screenshot shown, just click Yes then OK to enable the code. This issue appears in Excel 2016, too.
This comment was minimized by the moderator on the site
What if i need to prevent in a single cell typing certain characters in combination with length of the text?

For example, i want to prevent the text to be between 5-16 caharacters in comination with certain character prevention? Any advice?
This comment was minimized by the moderator on the site
Maybe you can try the Data Validation function to limit the text length. See screenshot:
This comment was minimized by the moderator on the site
The solution with Data Validation is almost perfect. But I'm able to put "*" character the such protected field. Any advice? Many thanks Pavel
This comment was minimized by the moderator on the site
Instead of SEARCH function try using FIND: =ISNUMBER(SUMPRODUCT(FIND(MID(A1,ROW(INDIRECT("1:"&LEN(A1))),1),"0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ")))
This comment was minimized by the moderator on the site
how to set length limit ? i mean if i want to set only 12 character or number
This comment was minimized by the moderator on the site
Hello, raj,
To solve your problem, please apply the below formula:
=AND(ISNUMBER(SUMPRODUCT(FIND(MID(A1,ROW(INDIRECT("1:"&LEN(A1))),1),"0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"))),LEN(A1)=12)


Please have a try, hope it can help you!
There are no comments posted here yet
Please leave your comments in English
Posting as Guest
×
Rate this post:
0   Characters
Suggested Locations