当单击combobox时运行macros

当我点击combobox时,我需要帮助弄清楚如何使macros运行。 例如,ComboBox从另一列中拉取一个列表,如果该列发生更改,当我第一次单击ComboBox时,我想查看更新的列表。 现在它是单击ComboBox后,运行macros,然后单击一个已经存在的选项。 一旦我重新打开,然后我看到用户第一次点击时我想查看的更新列表。 任何帮助表示赞赏,非常感谢你!

Sub costcenterdup() ' ' costcenterdup Macro Application.ScreenUpdating = False With Sheets("Dollars") .Range("K9:K" & .Cells(9, "K").End(xlDown).Row).Copyy Destination:=Sheets("LookUp").Range("E2") End With With Sheets("LookUp") .Range("$E2:E" & .Cells(.Rows.Count, "E").End(xlUp).Row).RemoveDuplicates Columns:=1, Header:=xlNo End With With Application.Worksheets("LookUp") .Range("E2:E5000").Sort Key1:=.Range("E2") End With Range("C5").Select Application.ScreenUpdating = True End Sub 

有两种types的combobox可以添加到工作表中。

  • 其中之一是一个窗体combobox,可以从“窗体”工具栏进行访问。

  • 另一个是ActiveXcombobox,可以通过“控制工具箱”工具栏进行访问

这里有一个非常好的解释(链接是由@Ralph提供): http ://peltiertech.com/forms-controls-and-activex-controls-in-excel/

对于第一个,只能在combobox更改时分配一个macros。

但是对于ActiveXcombobox,您可以指定几个。 如果将它添加到GotFocus事件中,则每次获取焦点时都会运行macros:

 Private Sub ComboBox1_GotFocus() 'Add code here End Sub 

但是如果我正确地理解了你的问题,那么你想让combobox中的数据在列中 – 那么你需要combobox的第一个版本 (表单一),只需右键单击它,select“格式控制…“并在”控制“选项卡上设置要填充数据的单元格。 它会自动为你更新combobox,你会一直看到单元格的值。 这种情况下不需要macros。 看到下面的图片: Excel中“表单”工具栏上的组合框