Note: The other languages of the website are Google-translated. Back to English
登入  \/ 
x
or
x
註冊  \/ 
x

or

如何防止特殊字符輸入Excel?

在某些情況下,我們只想在單元格中輸入字母或數字,並避免鍵入特殊字符,例如@#$%&等。 Excel中是否有任何功能可以防止在插入值時輸入特殊字符?

防止通過數據驗證輸入特殊字符

防止使用VBA代碼輸入特殊字符

防止使用Kutools for Excel輸入特殊字符 好主意3


防止通過數據驗證輸入特殊字符

Excel的數據驗證可以幫助您僅輸入字母數字值。 請執行以下操作:

1。 選擇您要防止輸入特殊字符的範圍。

2。 然後點擊 數據 > 數據驗證 > 數據驗證,請參見屏幕截圖:

doc-prevent-characters-1

3。 在 數據驗證 對話框,單擊 設置 選項卡,然後選擇 習俗 來自 下拉列表,然後輸入此公式 =ISNUMBER(SUMPRODUCT(SEARCH(MID(A1,ROW(INDIRECT("1:"&LEN(A1))),1),"0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"))) 公式 文本框,請參見屏幕截圖:

備註:A1 表示所選範圍的第一個單元格(從左到右)。

doc-prevent-characters-1

4。 然後點擊 OK 關閉此對話框,現在當您在指定的列中輸入包含特殊字符的值時,您已經應用了該選項,您將收到以下警告消息。

doc-prevent-characters-1


防止使用VBA代碼輸入特殊字符

以下VBA代碼還可以幫助您在輸入文本值時防止出現特殊字符。

1。 按住 ALT + F11 鍵,然後打開 Microsoft Visual Basic for Applications窗口.

2. 然後從左側選擇您使用的工作表 項目瀏覽器,雙擊以打開 模塊,然後將以下VBA代碼複製並粘貼到空白處 模塊:

VBA代碼:防止在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

備註:在上面的代碼中,您可以更改範圍 A1:A100 of 私有常量FCheckRgAddress為字符串=“ A1:A100” 腳本到您要防止特殊字符的範圍內。

3。 然後保存並關閉此代碼,現在,當您輸入帶有一些特殊字符的文本值(範圍為A1:A100)時,您的值將立即被清除,並且您會收到以下警告消息。

doc-prevent-characters-1


防止使用Kutools for Excel輸入特殊字符

其實,如果你有 Kutools for Excel -方便實用的多功能工具,您可以通過它的快捷方式防止在選區中鍵入特殊字符 防止打字 一次檢查實用程序。

Kutools for Excel, 與以上 300 方便的功能,使您的工作更加輕鬆。 

安裝後 Kutools for Excel,請執行以下操作:(立即免費下載Kutools for Excel!)

1.選擇您要防止鍵入特殊字符的選項,然後單擊 庫工具 > 防止打字 > 防止打字。 看截圖:
doc防止字符10

2。 在裡面 防止打字 對話框,檢查 禁止輸入特殊字符 選項。 看截圖:
doc防止字符7

3。 點擊 Ok,然後彈出一個對話框提醒您,如果應用此實用程序並單擊,它將刪除“數據驗證”。 要轉到下一個對話框,它將提醒您該實用程序在本節中一直有效。 看截圖:
doc防止字符8

4。 點擊 OK 關閉對話框,從現在開始,當您嘗試在選擇中輸入特殊字符時,將彈出一個警告對話框。
doc防止字符9

小費。如果您想停止在列中輸入重複的值,請嘗試使用Kutools for Excel的 防止重複 如以下屏幕截圖所示。 它在30天內無限制地提供完整功能, 請下載並立即免費試用。

doc防止重複 doc kutools防止輸入2


相關文章:

如何防止在Excel中使用空格輸入值?

如何防止Excel中的列重複輸入?


最佳辦公效率工具

Kutools for Excel解決了您的大多數問題,並使您的生產率提高了80%

  • 重用: 快速插入 複雜的公式,圖表 以及您以前使用過的任何東西; 加密單元 帶密碼 創建郵件列表 並發送電子郵件...
  • 超級公式欄 (輕鬆編輯多行文本和公式); 閱讀版式 (輕鬆讀取和編輯大量單元格); 粘貼到過濾範圍...
  • 合併單元格/行/列 不會丟失數據; 拆分單元格內容; 合併重複的行/列...防止細胞重複; 比較範圍...
  • 選擇重複或唯一 行; 選擇空白行 (所有單元格都是空的); 超級查找和模糊查找 在許多工作簿中; 隨機選擇...
  • 確切的副本 多個單元格,無需更改公式參考; 自動創建參考 到多張紙; 插入項目符號,複選框等...
  • 提取文字,添加文本,按位置刪除, 刪除空間; 創建和打印分頁小計; 在單元格內容和註釋之間轉換...
  • 超級濾鏡 (將過濾方案保存並應用於其他工作表); 高級排序 按月/週/日,頻率及更多; 特殊過濾器 用粗體,斜體...
  • 結合工作簿和工作表; 根據關鍵列合併表; 將數據分割成多個工作表; 批量轉換xls,xlsx和PDF...
  • 超過300種強大功能。 支持Office / Excel 2007-2019和365。支持所有語言。 在您的企業或組織中輕鬆部署。 完整功能30天免費試用。 60天退款保證。
kte選項卡201905

Office選項卡為Office帶來了選項卡式界面,使您的工作更加輕鬆

  • 在Word,Excel,PowerPoint中啟用選項卡式編輯和閱讀,發布者,Access,Visio和Project。
  • 在同一窗口的新選項卡中而不是在新窗口中打開並創建多個文檔。
  • 每天將您的工作效率提高50%,並減少數百次鼠標單擊!
officetab底部
Say something here...
symbols left.
You are guest
or post as a guest, but your post won't be published automatically.
Loading comment... The comment will be refreshed after 00:00.
  • To post as a guest, your comment is unpublished.
    WilExcel · 1 years ago
    When I use your VBA code in excel 2013 it will open up debug option and freezes
    • To post as a guest, your comment is unpublished.
      Sunny · 1 years ago
      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.
  • To post as a guest, your comment is unpublished.
    Milan · 3 years ago
    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?
    • To post as a guest, your comment is unpublished.
      Sunny · 3 years ago
      Maybe you can try the Data Validation function to limit the text length. See screenshot:
  • To post as a guest, your comment is unpublished.
    Pavel · 5 years ago
    The solution with Data Validation is almost perfect. But I'm able to put "*" character the such protected field. Any advice?
    Many thanks
    Pavel
    • To post as a guest, your comment is unpublished.
      unknown · 3 years ago
      Instead of SEARCH function try using FIND: =ISNUMBER(SUMPRODUCT(FIND(MID(A1,ROW(INDIRECT("1:"&LEN(A1))),1),"0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ")))