ComboBox _Click和_Change事件触发ListFillRange编辑? (Excel VBA)

时间:2016-04-12 06:31:58

标签: excel vba events combobox

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

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

ListFillRange = "A1:A3"

2)手动填充范围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)用"一个"仍然选中,双击ListFillRange中的任何单元格(例如,单元格" A2")

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

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

1 个答案:

答案 0 :(得分:0)

我没有将ListFillRange用于ActiveX控件。你可能应该避免使用它们。如果数据是静态的,那么尝试使用AddItem通过代码填充它。