提示:其它语言是由 Google 机器翻译的。 你可以访问 English 版本。
登录
x
or
x
x
马上登记
x

or

如何防止在Excel中输入特殊字符?

对于某些情况,我们只想在单元格中输入字母或数字,并防止输入特殊字符,如@#$%&等等。 Excel中是否有任何函数用于在插入值时防止输入特殊字符?

使用数据验证防止输入特殊字符

使用VBA代码防止输入特殊字符

防止使用Kutools for Excel输入特殊字符 好idea3


使用数据验证防止输入特殊字符

Excel'数据验证可以帮助您只输入字母数字值。 请做如下操作:

1。 选择要防止输入特殊字符的范围。

2。 然后点击 数据 > 数据验证 > 数据验证,看截图:

DOC-防止字符,1

3。 在 数据验证 对话框,单击 设置 选项卡,然后选择 私人订制 来自 下拉列表,然后输入这个公式 =ISNUMBER(SUMPRODUCT(SEARCH(MID(A1,ROW(INDIRECT("1:"&LEN(A1))),1),"0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"))) 公式 文本框,看截图:

请注意:A1 表示您所选范围的第一个单元格(从左到右)。

DOC-防止字符,1

4。 然后点击 OK 关闭此对话框,现在当您输入包含指定列中特殊字符的值时,您将应用该选项,您将看到以下警告消息。

DOC-防止字符,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-防止字符,1

注意:在上面的代码中,您可以更改范围 A1:A100 of Private Const FCheckRgAddress As String =“A1:A100” 脚本到您想要阻止特殊字符的范围。

3。 然后保存并关闭此代码,现在,当您在范围A1:A100中输入具有特殊字符的文本值时,您的值将立即被清除,并且您可以看到以下警告消息。

DOC-防止字符,1


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

其实,如果你有 Kutools for Excel - 一个方便的多功能工具,您可以快速防止在其选择中键入特殊字符 防止打字 实用工具通过一张支票

Kutools for Excel, 与超过 120 方便的功能,使您的工作更轻松。

安装后 Kutools为Excel,请做如下:(免费下载Kutools for Excel!)

1。 选择您想要阻止特殊字符输入的选项,然后单击 Kutools > 防止打字 > 防止打字。 看截图:
doc防止字符10

2。 在里面 防止打字 对话框,检查 防止输入特殊字符 选项。 看截图:
doc防止字符7

3。 点击 Ok,并弹出一个对话框提醒您,如果应用此实用程序并单击,它将删除数据验证 要进入下一个对话框,它会提醒您该部分的实用工作已经完成。 看截图:
doc防止字符8

4。 点击 OK 关闭对话框,并且从现在开始,当您尝试在选择中输入特殊字符时,弹出一个警告对话框。
doc防止字符9

提示。如果您想停止在列中输入重复值,请尝试使用Kutools for Excel 防止重复 如以下屏幕截图所示。 它在60天没有限制的全功能, 请立即下载并免费试用。

文档防止重复


相关文章:

如何防止在Excel中输入空格的值?

如何防止在Excel中的列中重复的条目?


Kutools for Excel - 最佳办公生产力工具提高80%的生产力

  • 重用: 快速插入 复杂的公式,图表 以及你以前用过的任何东西; 加密单元格 密码; 创建邮件列表 并发送电子邮件...
  • 超级方程式酒吧 (轻松编辑多行文字和公式); 阅读布局 (轻松读取和编辑大量单元格); 粘贴到过滤范围...
  • 合并单元格/行/列 不丢失数据; 分裂细胞含量; 组合重复的行/列...防止重复的细胞; 比较范围...
  • 选择复制或唯一 行; 选择空行 (所有细胞都是空的); 超级查找和模糊查找 在许多工作簿中; 随机选择......
  • 精确复制 多个单元格而不更改公式参考; 自动创建参考 多张表; 插入项目符号,复选框等等......
  • 提取文本,添加文本,按位置删除, 删除空间; 创建和打印分页小计; 在单元格内容和注释之间转换...
  • 超级过滤器 (将过滤方案保存并应用到其他工作表); 高级排序 按月/周/日,频率等; 特殊过滤器 用粗体,斜体......
  • 结合工作簿和工作表; 根据键列合并表; 将数据拆分为多个表格; 批量转换xls,xlsx和PDF...
  • 超过300强大的功能。 支持Office / Excel 2007-2019和365。 支持所有语言。 在您的企业或组织中轻松部署。 全功能60天免费试用。
kte tab 201905

Office选项卡为Office提供选项卡式界面,使您的工作更轻松

  • 在Word,Excel,PowerPoint中启用选项卡式编辑和阅读,Publisher,Access,Visio和Project。
  • 在同一窗口的新选项卡中打开并创建多个文档,而不是在新窗口中。
  • 通过50%提高您的工作效率,每天为您减少数百次鼠标点击!
官方底部
Say something here...
symbols left.
You are guest ( Sign Up? )
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.
    WilY · 1 months 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 · 21 days 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 · 1 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 · 1 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 · 3 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 · 1 years ago
      Instead of SEARCH function try using FIND: =ISNUMBER(SUMPRODUCT(FIND(MID(A1,ROW(INDIRECT("1:"&LEN(A1))),1),"0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ")))