Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
组合框\u单击并\u更改ListFillRange编辑触发的事件?(Excel VBA)_Excel_Vba_Events_Combobox - Fatal编程技术网

组合框\u单击并\u更改ListFillRange编辑触发的事件?(Excel VBA)

组合框\u单击并\u更改ListFillRange编辑触发的事件?(Excel VBA),excel,vba,events,combobox,Excel,Vba,Events,Combobox,在这里使用Excel 2010。从一张空白表开始,我创建了一个ActiveX组合框 1) 打开“属性”窗口并设置: ListFillRange = "A1:A3" 2) 手动在A1:A3范围内的每个单元格中分别填充单词“一”、“二”和“三”(这些字符串是任意的) 3) 单击组合框下拉箭头以检查值是否显示在列表中 4) 启用设计模式并双击组合框以打开VBA编辑器,然后粘贴以下代码(假定组合框名称为“ComboBox1”): 5) 返回包含组合框的工作表并禁用设计模式 6) 单击组合框下拉按钮并从

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

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

ListFillRange = "A1:A3"
2) 手动在A1:A3范围内的每个单元格中分别填充单词“一”、“二”和“三”(这些字符串是任意的)

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

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

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

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

7) 在仍然选择“一”的情况下,双击ListFillRange中的任何单元格(例如,单元格“A2”)

结果:步骤7同时触发“单击”和“更改”事件!每当编辑ListFillRange范围中的值时,和组合框中的字符串至少与ListFillRange中的一个值完全匹配时,就会发生这种情况


知道为什么会这样吗?是虫子吗?提前谢谢

我没有对ActiveX控件使用ListFillRange。你可能应该避免使用这些。如果数据是静态的,则尝试通过代码使用AddItem填充数据

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

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