【问题标题】:VBA ActiveX ComboBox in Excel - how to allow user to type input but only accept valid items?Excel中的VBA ActiveX ComboBox - 如何允许用户输入但只接受有效项目?
【发布时间】:2014-01-28 08:02:57
【问题描述】:

this question相关,我希望能够做一些稍微不同的事情。我有一个组合框,里面有很多项目(100+)。这是我必须处理的一个约束。

是否有设置允许组合框阻止用户添加新值但仍允许键入,以帮助自动完成或通过键入已知值时“选择”该值?

我知道一种方法是为每个组合框编写一个事件处理程序来验证输入,但我不想将它与 所有 组合框联系起来,我想要这个功能。

【问题讨论】:

  • Style设置为“下拉列表”而不是“下拉组合”
  • @TimWilliams 仍然允许用户输入保留,尽管它实际上并未将其添加到“值”列表中
  • 那么你有一些与我的测试不同的设置......我无法输入列表中不存在的任何内容。
  • 在组合框属性下配置 MatchEntry = 0 - frmMatchEntryFirstLetter 和 MatchRequired = True 时是否有效?
  • 您找到问题的解决方案了吗?如果没有,你有没有发现是否可以解决?

标签: vba excel combobox excel-2010


【解决方案1】:

是的,这可以通过更改 MatchEntryMatchRequired 的默认设置来完成> 组合框的属性。我设置了

MatchEntry:1 - fmMatchEntryComplete

当用户根据提供给 ComboBox 的列表键入 ComboBox 的文本部分时,它将自动完成。

设置

需要匹配:真

将验证输入到 ComboBox 文本部分的任何文本。

因此,在下面的屏幕截图中,您可以在第一个屏幕截图中看到我可以输入 hu 并且表单会使用 hup2020 自动完成,其中蓝色突出显示自动完成的内容。您还可以在第二个屏幕截图中看到我的 ComboBox 的下拉列表,并且由于我的输入而选择了 hup2020。

我仍然可以在组合框的文本部分输入其他内容,但是一旦我点击输入,表单就会弹出一个无效输入错误框,如最后一个屏幕截图所示。

【讨论】:

  • 嗨@Nelda.techspiress 我面临同样的问题陈述,我试图根据你的回答设置属性,但我无法成功。我可以知道它是如何工作的吗?我们还需要为此做些什么吗?
猜你喜欢
  • 2017-08-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-11-20
  • 1970-01-01
  • 2011-10-23
  • 2011-11-25
  • 2019-02-09
相关资源
最近更新 更多