excel - Excel ActiveX 组合框在条目选择后自行清除
问题描述
根据以下教程,我在我的 excel 电子表格中设置了一个 activeX 组合框:
https://www.extendoffice.com/documents/excel/2439-excel-drop-down-list-search.html
我进行了一些更改以调整某些选项按钮的使用,以便可以使用不同的条目类型。下拉代码看起来像这样的几个 if 重复:
If OptionButton1 = True Then 'determine option material is selected
ComboBox1.LinkedCell = "Form!B3"
'set cell linked to box to material type cell when option is selected
ComboBox1.ListFillRange = "DropDownList1" 'set dropdown list as materials when option is selected
Me.ComboBox1.DropDown 'dropdown list
再次调整选项按钮的使用。
这曾经完美地运行。但是最近出现了一个问题,即在选择一个选项后,组合框决定自行清除。我已经多次重写了我的代码,多次重写了公式,并更改了每一个组合框属性以确定问题所在。我能想到的唯一问题是,在选择一个值之后,我用来填充组合框的列表在搜索新条目时会发生变化。之后列表和所选条目不再匹配,并且组合框产生错误。有什么办法可以防止这种情况发生吗?
一种可行的解决方法是在链接单元格自行清除之前单击链接单元格并按 Enter。这会将条目视为用户编写的并且不会产生此错误。奇怪的事情之一是我有两个相同的组合框,像这样设置的,只有一个会产生这个错误。除了数据集之外,我使用的另一个电子表格几乎相同,也有同样的问题,但它是第二个组合框而不是第一个组合框不起作用。代码没有区别,因为它是复制粘贴的。
编辑: 在将其发布到此处之前,我已经解决了这个问题几个月了,今天早上我终于找到了一个解决方法。它会减慢搜索速度并且非常难看,但它的工作相当可靠并且可以阻止错误导致问题。
我所做的是放置一个组合框 on-change 事件,用它自己的值替换链接的单元格。因此,如果组合框自行清除,则链接单元格将根据需要保持其值。
Private Sub ComboBox1_Change()
If OptionButton1 = True Then 'determine material option is selected
Sheet1.Range("B3") = Sheet1.Range("B3").Value
注意:这显然不是问题的解决方案,而是一种可行的解决方法。如果有人知道如何完全防止这个问题,我将不胜感激。
解决方案
看起来你错过了一个等号:
ComboBox1.ListFillRange = "=DropDownList1"
推荐阅读
- reactjs - 如何更改图表中的图例文本颜色
- python - 在 python 中放大 SVG 图像而不损失其质量
- android-webview - Wear OS 2.0 - 有没有办法以编程方式处理 html、网页?
- java - Lombok 注释未在测试中处理 - Bazel
- javascript - 在 Postman 中过滤 Get 方法输出
- yocto - Yocto:将软件包添加到 IMAGE_INSTALL_append 后不接受 root 登录
- linux - 从每组连续的匹配行中提取第一行
- gitlab - 是否可以使用 gitlab cicd 来触发 systemd 命令
- c++ - 内部 C++ 中的字符编码?
- reactjs - 错误:useHref() 只能在 a 的上下文中使用
零件