2

嗨,我正在尝试编写一些 VBA,以便它检查我的一个文本框是否包含数字。该文本框称为:CustomerName。这是我目前正在使用的代码:

Function HasNumber(strData As String) As Boolean
    Dim iCnt As Integer

    For iCnt = 1 To Len(strData)
        If IsNumeric(Mid(strData, iCnt, 1)) Then
            HasNumber = True
            Exit Function
        End If
    Next iCnt

End Function

Private Sub CustomerName_AfterUpdate()
If HasNumber(CustomerName) Then
    MsgBox "Only letters are allowed for this field."
    Exit Sub
End If

End Sub

出于某种原因,当我在此字段中输入数字然后单击它(即更新它)时,它不会出现 msgbox 或任何东西。我能做些什么来解决这个问题?

4

2 回答 2

3

CustomerName我会在表格的列或文本框的验证规则上使用此验证规则,而不是使用一些自定义代码:

Not Like "*[0-9]*"

有关验证规则的参考,请参见此处。

于 2013-05-10T21:53:59.213 回答
0

试试这样:

If HasNumber(CustomerName.Text) Then
于 2013-05-09T22:32:14.653 回答