ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 2542|回复: 8

[求助] msgbox对话框关闭后,如何使文本框仍然保持焦点

[复制链接]

TA的精华主题

TA的得分主题

发表于 2016-5-24 12:52 | 显示全部楼层 |阅读模式
我想实现的功能是,在文本框中按回车后,弹出msgbox对话框,按确定后,可以继续在文本框中输入文字。问题是现在msgbox关闭后,焦点都不知道跑哪儿去了。。何解??

TA的精华主题

TA的得分主题

发表于 2016-5-24 13:05 | 显示全部楼层
MsgBox "-----"
TextBox1.SetFocus

TA的精华主题

TA的得分主题

 楼主| 发表于 2016-5-24 13:13 | 显示全部楼层
CC例例 发表于 2016-5-24 13:05
MsgBox "-----"
TextBox1.SetFocus

试了没用啊。。。

TA的精华主题

TA的得分主题

 楼主| 发表于 2016-5-24 13:18 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
Private Sub ComboBoxXsdno_Exit(ByVal Cancel As MSForms.ReturnBoolean)
Cancel = True
End Sub

'回车后触发事件
Private Sub ComboBoxXsdno_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
If KeyCode = 13 Then
MsgBox “111”
ComboBoxXsdno.SetFocus
End If
End Sub

就这两段,msgbox后面的代码仿佛根本就不起作用

TA的精华主题

TA的得分主题

发表于 2016-5-24 16:34 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
楼主如果想解决问题,最好是将你的文件发来,大家好调试

TA的精华主题

TA的得分主题

 楼主| 发表于 2016-5-24 16:53 | 显示全部楼层
附件在这里
我试了一下,userform1.show 1的话,msgbox关闭后焦点没问题。。。但是如果是userform1.show 0。。。。焦点就会随着msgbox的关闭而跑到哪里都不知道了,怎么调都没用。

testvba.rar

15.26 KB, 下载次数: 12

TA的精华主题

TA的得分主题

发表于 2018-6-11 14:28 | 显示全部楼层
我刚也碰到这问题,想了个笨的办法,在msgbox后,先unload me,再重新.show,可以达到要求。

TA的精华主题

TA的得分主题

发表于 2018-6-11 16:05 | 显示全部楼层
本帖最后由 yylucke 于 2018-6-11 16:11 编辑

显示窗体的语句:
  (1)模式窗体的显示代码:
  窗体名称.Show  vbModal
  也可以写成:窗体名称.Show 1
  (2)无模式窗体的显示代码:
  窗体名称.Show  vbModeless
  也可以写成:窗体名称.Show 0
(1)模式窗体:窗体显示后将停显示之后的代码直到退出或隐藏此窗体,并且必须退出或隐藏此窗体后,才可以操作非此窗体的其他界面元素。
  也就是说,当你使用模式窗体显示某窗体的时候,当程序执行完“显示窗体”这条命令后,将暂停执行程序里剩余的语句,真正这个窗体被隐藏或退出。关且当窗体显示出来以后,你不能激活该窗体以外的任何区域。
  (2)无模式窗体:窗体显示后会继续执行程序里余下的语句,而其他的窗体或界面也可以进行操作。

你非要整个无模式窗体做什么,那样很多意外会发生。毕竟是非专业编程,个人认为尽量“单线程”,即采用模式窗体,当前窗体独占模式。显示
控件在设计之初就是默认模式窗体,你何必多此一举修改为非模式呢。
窗体显示,就用:窗体名称.Show,一点毛病没有,不要去加那个参数。除非你的程序很特殊。

TA的精华主题

TA的得分主题

发表于 2018-6-11 16:13 | 显示全部楼层
其实跳转到msgbox之前的控件,没有你写的代码那么麻烦,以下是通用代码
Me.Controls(控件名称).SetFocus
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-11-22 19:49 , Processed in 0.048354 second(s), 11 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表