永发信息网

vba textbox在失去焦点后如何重新获取焦点

答案:2  悬赏:50  手机版
解决时间 2021-03-28 20:34
vba textbox在失去焦点后如何重新获取焦点
最佳答案
直接在提示框语句后面接着用setfocus方法不行吗追问不行啊
代码如下:
Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
If Not IsNumeric(TextBox1.Value) Then
MsgBox ("非数字")
TextBox1.SetFocus
End If
End Sub
提示信息弹出来了,但是没有获得焦点追答不能写在它本身的Exit 事件里,输入文本后下一步是怎么做的,代码应在下一步里。
要在本身的事件里检查,应用 TextBox1_Change() 或TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)事件代码,可限制不是数字的输入。追问现在我想检查textbox的输入内容是不是数字,如果不是数字的话弹出提示框,并且将焦点重新停在textbox上,能提供代码吗,谢谢追答Private Sub TextBox1_KeyUp(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
For i = 1 To Len(TextBox1.Text)
n = Asc(Right(TextBox1.Text, 1))
If n = 46 Or n > 47 And n < 58 Then Exit For
TextBox1.Text = Left(TextBox1.Text, Len(TextBox1.Text) - 1)
Next
End Sub
上面代码就控制了只能输入数字0~9和小数点,其他输入则会清除追问比这个方法有个问题,做到了检查,但是没有解决让它重新获取焦点的问题
不过还是非常感谢你,我已经想到另外办法来解决了追答你能确定输入之后该干什么,比如按“确定”按钮,那么你的代码就放在单击“确定”的代码里。

如果不能确定输入之后该干什么,那么可设一个全局变量(逻辑型),比如Bo,在你的代码确定它的值:
Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
Bo=false
If Not IsNumeric(TextBox1.Value) Then
MsgBox ("非数字")
Bo=trueT
End If
End Sub

再他后续可能的事件代码里都加一句:if Bo=true then TextBox1.SetFocus
这样也能达到目的
全部回答
引用姓王的wy的回答:
直接在提示框语句后面接着用setfocus方法不行吗exit事件里有个参数CANCEL 吧他的值改为false,
只要在EXIT事里写入CANCEL=FALSE。就不会退出TEXTBOX。
我也是刚学VBA以后多指教
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
怎样骑自行车骑得快?
小说《沉沦》是谁的作品?
使谕以指意,边害讫息 谕和以是什么意思
高手们请将图中第一辆橘黄色的SK661F2车型改
庄子是什么时候被封为“南华真人”
俺想要好看的耽美文!!
银河星爆、圣剑、庐山百龙霸 谁是最强的物理
如何把白色鞋子上的污渍洗掉?
答谢中书书和山中与裴迪秀才书两文写作目的有
我想把我铲车出厂日期改了去哪里改,求答
苹果平板电脑的充电器不要原配的大约多少钱?
一什么牵牛花
我因开公司的车发生了了交通事故把一位老人撞
“交易全无市井风,全凭忠信与人同,虽云逐末
桓台学英语哪个学校好
推荐资讯
西昌民族风情园咋样?请问有鬼屋吗?
吴中文艺学校少儿围棋培训班地址在什么地方,
求最大切应力和相对扭转角,材料力学问题()
.《行政处罚法》规定对公民当场处以罚款的数
岳阳医院三号门在哪里啊,我有事要去这个地方
如何从墨尔本市区到普芬比利蒸汽小火车
请问建昌县是什么时候设立的?
小度小度问你一个题
从广粤路丰镇路到七莘路191o号
如果你办公室门口每天都有很多不同的女同事路
恰同学少年中的对联
很实在请回答1988德善老公为什么是阿泽
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?