通常,我們可以使用Excel的“數(shù)據(jù)驗(yàn)證”功能來(lái)設(shè)置指定單元格或單元格區(qū)域僅能輸入指定范圍的整數(shù)或者小數(shù),如下圖1所示。
圖1
設(shè)置好后,僅能在單元格C2中輸入介于1至100之間的整數(shù),如下圖2所示。
圖2
其實(shí),使用VBA也能夠?qū)崿F(xiàn)上述功能且更靈活和強(qiáng)大。例如,我們想要限定用戶在單元格區(qū)域B2:D6中僅能輸入數(shù)字。在VBE中,雙擊單元格區(qū)域所在的工作表模塊,輸入下面的代碼:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim rng As Range
Application.EnableEvents = False
For Each rng In Target
‘限定程序執(zhí)行在單元格區(qū)域B2:D6
If Not Application.Intersect(rng,Range(“B2:D6”)) Is Nothing Then
‘判斷是否為數(shù)字
‘如果不是數(shù)字則清空
If Not IsNumeric(rng.Value) Then
rng.Value = vbNullString
End If
End If
Next rng
Application.EnableEvents = True
End Sub
這樣,在該工作表單元格區(qū)域B2:D6中,如果輸入的是非數(shù)字,則會(huì)自動(dòng)清空。并且,這個(gè)單元格區(qū)域可以輸入整數(shù)或小數(shù)。