You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Excel VBA中TextBox回车添加内容后无法SetFocus问题求助

Excel VBA中TextBox按回车后SetFocus失效的解决办法

问题根源是回车键的默认行为会覆盖SetFocus操作:按下回车键时,系统会自动将焦点转移到Tab键顺序中的下一个控件,导致你手动设置的焦点被冲掉。只需修改代码取消回车键的默认行为即可解决:

Private Sub TextBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
    If KeyCode <> 13 Then Exit Sub
    
    ' 取消回车键的默认焦点转移行为
    KeyCode = 0
    
    Me.ListBox1.AddItem Me.TextBox1.Text
    Me.TextBox1.Text = ""
    Me.TextBox1.SetFocus
End Sub

补充说明

如果仍有焦点异常问题,可在SetFocus前加入DoEvents,让系统先处理完当前事件队列再执行焦点设置:

Private Sub TextBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
    If KeyCode <> 13 Then Exit Sub
    
    KeyCode = 0
    
    Me.ListBox1.AddItem Me.TextBox1.Text
    Me.TextBox1.Text = ""
    DoEvents
    Me.TextBox1.SetFocus
End Sub

内容的提问来源于stack exchange,提问作者Pasquale Prudente

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.16 02:03:13