以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  高级功能研发区  (http://weistock.com/bbs/list.asp?boardid=5)
----  [求助]文本框只输入数字  (http://weistock.com/bbs/dispbbs.asp?boardid=5&id=99511)

--  作者:c100011651
--  发布时间:2016/6/23 21:02:45
--  [求助]文本框只输入数字
我在百度查了答案,但放在金字塔用似乎用不了。测试了一下,貌似是因为KEYPRESS事件没有响应。

我是这样测试的:
Sub UserForm1_txtWeight_KeyPress(KeyAscii)
    call application.MsgOut (1)
End Sub

按理如果有反应的话,消息框应该会显示1吧

为什么KEYPRESS事件没反应呢?

--  作者:pel46585
--  发布时间:2016/6/24 17:32:46
--  
txtWeight是什么?
改为如下代码试下
Sub UserForm1_KeyPress(KeyAscii)
    call application.MsgOut (1)
End Sub

--  作者:c100011651
--  发布时间:2016/6/24 20:17:55
--  
非常感谢
--  作者:c100011651
--  发布时间:2016/6/26 18:49:48
--  
为何还是无法限制只输入数字呢?代码如下

Sub UserForm1_KeyPress(KeyAscii)
   If KeyAscii < 48 Or KeyAscii > 57 Then KeyAscii = 0
End Sub



--  作者:pel46585
--  发布时间:2016/7/11 13:31:05
--  
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

--  作者:jinn
--  发布时间:2016/7/18 18:03:15
--  
请问一下输入,可以输入多内容吗?,比如下拉菜单之类的,还有勾选这类的