VBA是数字文本功能问题

时间:2011-05-31 12:52:22

标签: function vba

我试图检查一个数字是否是银行系统中的文本或数字。如果值不正确,它应该擦除并发送错误消息,但我的代码根本不起作用...有人可以帮助我吗?这是代码:

Private Sub TextBox1_Change()

   name = TextBox1

   If Application.IsText(name) = True Then
      IsText = True
   Else
      MsgBox "Insert only words"
      Selection.name.Delete
   End If

End Sub

2 个答案:

答案 0 :(得分:1)

我认为您应该使用name = TextBox1.Text代替。它可能会在那条线上给你一个错误。

此外,您可能希望等到用户完成键入响应后,我相信每次按下一个字符时都会运行更改的事件。选中或单击远离文本框后,AfterUpdate将运行。

实际上,您应该将文本框空白设置为空字符串,而不是删除响应(我认为不会起作用)。

Private Sub TextBox1_AfterUpdate()
    If Not MyIsANumber(TextBox1.Text) Then
        MsgBox ("It's Text")
    Else
        TextBox1.Text = ""
    End If
End Sub

Function MyIsANumber(str As String) As Boolean
    For i = 1 To Len(str)
        If IsNumeric(Mid(str, i, 1)) Then
           MyIsANumber = True
           Exit Function
        End If
    Next
        MyIsANumber = False
 End Function

我确信代码可以更好地构建,但是你需要的东西也是如此。在这种情况下,如果输入了数字,它只会擦除文本框。显然,对于要包含数字的文本框,事情需要相反。

答案 1 :(得分:0)