Excel:输入数据验证仅允许数字

时间:2013-12-30 17:03:45

标签: excel excel-vba vba

有没有办法不允许用户在我只需要数字的单元格中输入字母字符?

我非常感谢任何帮助。

2 个答案:

答案 0 :(得分:1)

如前所述,可以通过数据验证来实现...... 但是有一个问题。

第一种方法:数据验证

  1. ALT + d + L
  2. 允许:整数
  3. 数据:大于(选择您想要的内容
  4. 最低:0
  5. CATCH: 但是,如果从其他单元格复制数据验证,则数据验证不会检查该值。 也就是说,如果我从不同的单元格复制alpha值&粘贴/粘贴特殊(值)它在单元格上,它将接受它。它不会限制我。

    因此第二种方法:VBA

    Private Sub Worksheet_Change(ByVal Target As Range)
        Const CELL_ADDRESS = "$A$1" 'change cell
        If Target.Address = CELL_ADDRESS Then
           If Not IsNumeric(Target.Value) Then
              MsgBox "Wrong value", vbCritical, "666bytes"
              Target.Value = vbNullString
           End If
        End If
    End Sub
    

    修改:对于范围:

    Private Sub Worksheet_Change(ByVal Target As Range)
        Const CELL_ADDRESS = "$D$2:$E$4000" 'change range
        If Not Application.Intersect(Target, Range(CELL_ADDRESS)) Is Nothing Then
           If Not IsNumeric(Target.Value) Then
              MsgBox "Wrong value", vbCritical, "666bytes"
              Target.Value = vbNullString
           End If
        End If
    End Sub
    

    将此VBA代码插入要实现此功能的工作表模块中,然后更改CELL_ADDRESS。 如果你想要使用Worksheet_Change事件可以做很多事情,那么请使用此代码播放。希望这可以帮助! :)

答案 1 :(得分:1)

假设输入单元格为A1

在数据验证菜单中

允许:自定义

公式:= isnumber(A1)