vba - 如何延迟 Userform TextBox1_Change() 触发,直到单个输入多个字符完成?
问题描述
我有一个宏,它使用来自 TextBox1 的输入值。如果给 TextBox1 整体赋值,则代码运行良好。如果一个字符一个字符地输入一个值(使用手持条形码扫描仪扫描),则代码:TextBox1_Change() 会在每个字符上触发。
如何仅在输入整个值时才启动宏(值的长度可能不同)?也许有办法捕捉条形码扫描仪 ENTER?
手动触发代码的额外按钮不是一种选择。
也在这里问
解决方案
文本框有几个不同的事件触发器。TextBox1_Exit 将是您正在寻找的那个。当用户点击离开文本框或关闭用户窗体时触发。
将 Sub 的名称更改为 TextBox1_Exit() 并查看行为是否符合您的要求。
如果不是这样,请尝试Application.OnTime。您可以将宏执行延迟一秒钟,让条形码扫描仪有足够的时间来完成输入文本。
Application.OnTime Now() + TimeValue("00:00:01"), "MacroName"
推荐阅读
- tableau-api - 使用 Tableau 检测数据中的模式
- php - Laravel 查询以在 JSON 字段中选择列表条目
- c# - 如何在列表中添加多个对象列表
- docker - 在运行时将文件复制并 chown 到 docker bind mount
- python-3.x - 为什么 reddit 在使用 beautifulsoup4 访问页面时返回 502 错误
- flutter - Cupertino 选项图块,ios 设置页面样式
- node.js - 在构建 React 应用程序时获取 MaxListenersExceededWarning
- sql-server - 在 TSQL 中声明一个变量
- etl - 我们应该将复杂的解析逻辑放在 Athena 中或使用 Glue
- python - python中对象列表的问题