单击ComboBox时运行宏

时间:2016-05-03 14:53:35

标签: excel vba combobox

当我点击ComboBox时,我需要帮助弄清楚如何制作宏。例如,ComboBox从另一列中提取列表,如果该列发生更改,我希望在第一次单击ComboBox时看到更新的列表。现在它在我单击ComboBox然后单击已存在的选项后运行宏。一旦我重新打开,我就会看到用户第一次点击时看到的更新列表。感谢任何帮助,非常感谢!!!!

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

1 个答案:

答案 0 :(得分:1)

您可以将两种类型的组合框添加到工作表中。

  • 其中一个是表单组合框,可以从“表单”工具栏访问。

  • 另一个是 ActiveX 组合框,可以从“控件工具箱”工具栏访问它。

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

对于第一个,您只能在组合框更改时分配一个宏。

但是对于ActiveX ComboBox,您可以分配几个。如果您将其添加到GotFocus事件,则每次该框获得焦点时它都会运行宏:

Private Sub ComboBox1_GotFocus()

    'Add code here

End Sub

如果我正确理解了你的问题,你想让组合框从列中包含数据 - 那么你需要第一个版本的组合框(表单一),只需右键单击它,选择“格式控件...”,然后在“控制”选项卡上设置要填充数据的单元格。它将自动为您更新组合框,您将始终看到单元格中的值。在这种情况下不需要宏。见下图: Combo Box from the Forms toolbar in Excel

相关问题