vba - 等到用户停止在 ComboBox 中键入即可运行宏 (VBA)

标签 vba excel combobox

我正在编写一种交叉引用数据库。 ID 是根据选择或创建的文档名称生成的。

我在标题中提到的组合框会根据更改进行操作(在 3 个字母之后),检查数据库中是否有与键入内容类似的条目,并显示匹配选项的下拉列表。一旦从匹配列表中选择了一个条目或创建了一个新名称 - 就会生成适当的编号。

由于在输入每个字母后都会生成下拉列表,因此需要一段时间才能输入所需的内容。我想在最后更改后等待几秒钟来运行宏。

关于如何实现这一目标有什么想法吗?

最佳答案

再次使用Application.OnTime的替代方案:

用户表单中:

Private Sub ComboBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
    StartTimer
End Sub

模块中:

Public RunTime As Double

Public Sub StartTimer()
    On Error Resume Next
    Application.OnTime EarliestTime:=RunTime, Procedure:="YourCode", Schedule:=False
    RunTime = Now() + TimeValue("00:00:03")
    Application.OnTime RunTime, "YourCode"
End Sub

Public Sub YourCode()
    MsgBox "It's working!"
End Sub

关于vba - 等到用户停止在 ComboBox 中键入即可运行宏 (VBA),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46567132/

相关文章:

excel - VBA Excel 二维数组

excel - 在 VBA Excel 中以 PDF 格式打印的可变垂直页数

java - 如何从组合框中检索隐藏字段?

loops - 向 Excel 的 vba 代码添加循环

excel - 消息框显示Excel VBA中多列的值

excel - 使用动态数组存储和粘贴值

powershell - 根据另一个组合框的选择填充组合框 - Powershell

c# - 为 ComboBox 设置默认值

c++ - 字符串的变体数组包含备用空格

excel - 在不更改范围的情况下填写 VLOOKUP 公式