【问题标题】:ComboBox _Click and _Change events triggering on ListFillRange edit? (Excel VBA)在 ListFillRange 编辑上触发 ComboBox Click 和 Change 事件? (Excel VBA)
【发布时间】:2016-08-02 14:10:55
【问题描述】:

在此处使用 Excel 2010。从一张空白表开始,我创建了一个 ActiveX 组合框。

1) 打开属性窗口并设置:

ListFillRange = "A1:A3"

2) 分别用单词“one”、“two”和“three”手动填充范围 A1:A3 中的每个单元格(这些字符串是任意的)。

3) 单击组合框下拉箭头以检查值是否出现在列表中。

4) 启用设计模式并双击组合框打开VBA编辑器,然后粘贴以下代码(假设组合框名称为“ComboBox1”):

Private Sub ComboBox1_change()
    MsgBox "Change event"
End Sub

Private Sub ComboBox1_click()
    MsgBox "Click event"
End Sub

5) 返回包含组合框的工作表并禁用设计模式。

6) 单击组合框下拉按钮并从列表中选择顶部项目(“一个”)。释放鼠标按钮后,您应该立即获得两个 MsgBox 窗口,一个用于 _click 事件,另一个用于 _change 事件,如上述 Subs 所示。

7) 仍然选择“one”,双击 ListFillRange 中的任何单元格(例如,单元格“A2”)

结果:第 7 步触发了 _click 和 _change 事件!每当编辑 ListFillRange 范围中的值并且组合框中的字符串与 ListFillRange 中的至少一个值完全匹配时,就会发生这种情况。

知道为什么会这样吗?它是一个错误吗?提前致谢!

【问题讨论】:

    标签: excel vba events combobox


    【解决方案1】:

    我不将 ListFillRange 用于 ActiveX 控件。您可能应该避免使用这些。如果数据是静态的,则尝试通过代码使用 AddItem 填充它。

    【讨论】:

      猜你喜欢
      • 2021-02-10
      • 1970-01-01
      • 1970-01-01
      • 2012-02-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-11-11
      相关资源
      最近更新 更多