我在百度查了答案,但放在金字塔用似乎用不了。测试了一下,貌似是因为KEYPRESS事件没有响应。
我是这样测试的:
Sub UserForm1_txtWeight_KeyPress(KeyAscii)
call application.MsgOut (1)
End Sub
按理如果有反应的话,消息框应该会显示1吧
为什么KEYPRESS事件没反应呢?
为何还是无法限制只输入数字呢?代码如下
Sub UserForm1_KeyPress(KeyAscii)
If KeyAscii < 48 Or KeyAscii > 57 Then KeyAscii = 0
End Sub
Sub UserForm1_TextBox1_KeyPress(KeyAscii)
application.MsgOut KeyAscii
If KeyAscii < 48 Or KeyAscii > 57 Then KeyAscii = 0
End Sub
测试了下,确实无效。
可以通过Change事件,做些修改实现你的目的,我增加了个Lable控件。
Sub UserForm1_TextBox1_Change()
If UserForm1_TextBox1.Text <> "" Then
If Asc(UserForm1_TextBox1.Text) > 47 And Asc(UserForm1_TextBox1.Text) < 58 Then
UserForm1_Label1.Caption = UserForm1_Label1.Caption & UserForm1_TextBox1.Text
application.MsgOut UserForm1_Label1.Caption & UserForm1_TextBox1.Text
End If
UserForm1_TextBox1.Text = ""
End If
End Sub
请问一下输入,可以输入多内容吗?,比如下拉菜单之类的,还有勾选这类的