【发布时间】:2017-05-09 08:11:37
【问题描述】:
在我的用户表单中,如果 TextBox 不包含数字或为空,我想要 MsgBox。
这是我的代码,但在另一种情况下,TextBox = "" Empty MsgBox 出现在我面前,所以我的问题是空的 TextBox。
Private Sub TB1_Change()
If TypeName(Me.TB1) = "TextBox" Then
With Me.ActiveControl
L12.Caption = Val(TB1.Text) * Val(TB2.Text)
If Not IsNumeric(.Value) And .Value <> vbNullString Then
MsgBox "Sorry, only numbers allowed"
.Value = vbNullString
End If
End With
End If
End Sub
【问题讨论】:
-
MsgBox "Sorry, only numbers allowed but you entered '" & .Value & "'."在'之间写了什么? -
用我发布的代码替换您的 MsgBox 代码。运行您的代码并告诉我们当您的文本框为空时 MsgBox 中的内容。
-
不应该
With Me.ActiveControl是With Me.TB1- 目前它使用的是ActiveControl的值,而不是TextBox的值。 -
我认为您可能想重新访问您的设计。每当您按下非法键时都会弹出一个消息框,这会很烦人。
-
@Sagy.K - 你仍然应该重新考虑你的设计 - 每次用户在文本框中输入一个字符时,
TB1_Change代码都会被执行(如果他们输入“hello”,则执行 5 次)或删除一个字符,并且每次您的代码更改文本框的值(例如初始化它)时也会调用它。