单击VBA Excel ActiveX Combobox中已选择的项目时单击事件未触发

时间:2014-11-18 15:14:32

标签: excel vba excel-vba combobox activex

我需要专业知识帮助!

我不是VBA或Excel的新手,但我已经遇到了这个奇怪的事情,我无法找到解决办法。我已经谷歌搜索了很长时间,所以我想我会在这里问。

背景: 我有一个excel-sheet,有很多我正在为我的工作开发的VBA,一个activeX组合框在启动时填充了访问数据库中的项目。用户可以选择一个项目,该项目会自动(在失去焦点/更改时)使用数据库中的数据填充一些文本框。然后,用户可以编辑从数据库加载的文本框值,从而调整一些计算结果。

现在,问题是:如果用户调整参数,但想要返回默认值 - 即重新加载数据库值 - 再次选择相同的组合框条目不会触发我发现的任何事件 - 因为它已被选中。我认为点击事件应该触发 - 但不是。改变事件显然不会发生......

有什么方法可以解决这个问题吗?我还没有想到的任何事件?

注意:当前的解决方法解决方案是用户必须选择另一个项目,然后返回到他或她想要的项目,或添加重置按钮。我不喜欢这些变通方法中的任何一个,所以如果有任何我可以做的事情......

谢谢!

1 个答案:

答案 0 :(得分:0)

我一直在研究一个问题,就像你说的几天一样,可能有理想的解决方案。

我们的想法是将“ComboBox1.Value”重置为默认值,以便您可以重新选择相同的选项。这样就无需单击随机项,然后重新选择上一项以重新填充链接的单元格,并且不需要单独的重置按钮。

Code:
Sub cbReset()
 'Reset ComboBox1 Values
      Sheets("Sheet1").ComboBox1.Value = "Select Option..." <-- 'Default value of Combo Box
      Sheets("Sheet1").ComboBox2.Value = "Select Option..." <-- 'Default value of Combo Box
      Sheets("Sheet2").ComboBox1.Value = "Select Option..." <-- 'Default value of Combo Box
End Sub

您可以根据自己的需要调整代码。这可以在同一工作表中调用或输入。 在执行完所有其他操作后,此代码将在语句的末尾进行。 我在多个工作表或组合框中输入了额外的行,以防万一有需要。

您还可以更改工作表名称或组合框名称。

希望帮助还不算太晚。

干杯!