提问人:Renaat 提问时间:10/17/2023 更新时间:10/17/2023 访问量:46
VBA Excel 用户窗体:光标未显示在活动的 texbox 中
VBA Excel UserForm: Cursor does not show in active texbox
问:
在 Excel 中的用户窗体中,我有一个名为 ScanInput_Fx 的 TextBox,它重复用于输入数据。每次处理数据时,ScanInput_Fx都会被清空,焦点会回到它身上。或者更好:它保持ScanInput_Fx,因为我使用了_BeforeUpdate事件的 Cancel = True 选项。但是,无论出于何种原因,有时光标不会显示。我已经进行了测试,以确保焦点实际上ScanInput_Fx(通过在消息框中调用 ActiveControl 的名称并将文本从 VBA 代码推送到 ActiveControl 中),它确实如此。
用户唯一可以做的就是再次手动单击ScanInput_Fx。但是,这并不是一个真正的选择,因为用户正在使用扫描仪输入数据,并且他不在计算机附近。
我已经阅读了很多关于此的帖子,但没有找到可行的解决方案。我试过将焦点转移到另一个控件并回到ScanInput_Fx,但这也不起作用。奇怪的是,当我省略 Cancel = True 选项(_BeforeUpdate事件)时,焦点不会跳到窗体上的下一个 Tabposition,即使我在 VBA 中对其进行硬编码时也不会跳到。不确定这两件事是否相关,但也许它确实给某人敲响了警钟。
一些额外的上下文(因为我无法在此处显示所有代码)。这是 _BeforeUpdate 事件的代码的作用:
- 它检查在 ScanInput_Fx 中输入的值是否对数组中的查找有效
- 它将计数器 1 添加到窗体上的另一个控件,该控件与在 ScanInput_Fx 中输入的数据相对应
- 它将ScanInput_Fx值放在基础 Excel 工作表的单元格中,并将该工作表另存为 PDF
所以,在我看来,没有什么非常壮观的。唯一可能特别的是,窗体上的大多数控件都是由函数动态创建的。但是,显示这种不稳定行为ScanInput_Fx在屏幕上是固定的(因此不是动态创建的)
会有人对我能做什么或我可以从哪里开始寻找答案有一些建议吗?
提前感谢您的帮助。
雷纳特
答: 暂无答案
评论
.Show
frm.Show vbmodeless