如何让VBA让用户仅能在指定单元格或单元格区域中输入数字
通常,我们可以使用Excel的“数据验证”功能来设置指定单元格或单元格区域仅能输入指定范围的整数或者小数,如下图1所示。
图1
设置好后,仅能在单元格C2中输入介于1至100之间的整数,如下图2所示。
图2
其实,使用VBA也能够实现上述功能且更灵活和强大。例如,我们想要限定用户在单元格区域B2:D6中仅能输入数字。在VBE中,双击单元格区域所在的工作表模块,输入下面的代码:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim rng As Range
Application.EnableEvents = False
For Each rng In Target
‘限定程序执行在单元格区域B2:D6
If Not Application.Intersect(rng,Range(“B2:D6”)) Is Nothing Then
‘判断是否为数字
‘如果不是数字则清空
If Not IsNumeric(rng.Value) Then
rng.Value = vbNullString
End If
End If
Next rng
Application.EnableEvents = True
End Sub
这样,在该工作表单元格区域B2:D6中,如果输入的是非数字,则会自动清空。并且,这个单元格区域可以输入整数或小数。