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