使用VBAcombobox(窗体控件,内部工作表)中的项来运行macros
所以我想实现的是当某人在combobox(位于工作表A1单元格A1附近)点击某个特定年份时,macros按照被点击的年份运行。 我希望列表项被存储在VBA代码本身,而不是在工作表上select它们(我还没有find关于不使用工作表数据的combobox的单个教程)。
我创build了一个button来将数据加载到ComboBox1中。
这是现在的代码(我不是严格遵守它,所以如果有更简单的方法来写这个,请让我知道):
Sub Button1_Click() Sheets("MacroBase").ComboBox1.List = Array("2015", "2016", "2017", "2018", "2019") End Sub Sub ComboBox1_GotFocus() With ThisWorkbook.Sheets("MacroBase").Shapes("ComboBox1").ControlFormat Select Case .List(.Value) Case "2015": ShowOnly2015Columns Case "2016": ShowOnly2016Columns Case "2017": ShowOnly2017Columns Case "2018": ShowOnly2017Columns Case "2019": ShowOnly2019Columns End With End Sub
我没有粘贴代码ShowOnly ####列(testing和运行没有问题)。
目前_GotFocus不起作用。
我事先感谢您的所有时间和帮助:)
用这个
Sheets(1).Shapes("ComboBox1").ControlFormat.List = Array("2015", "2016", "2017", "2018", "2019")
请确保Sheets(1)
引用您的“ComboBox1”combobox实际所在的工作表
使用表单名称会比较安全
Sheets("mySheet").Shapes("ComboBox1").ControlFormat.List = Array("2015", "2016", "2017", "2018", "2019")
最后,如果你想用一些工作表范围的内容来填充combobox,你可以使用:
Sheets("mySheet").Shapes("ComboBox1").ControlFormat.ListFillRange = "'My Sheet'!A1:A5"
有两种types的combobox。
看到这个问题和答案。 这应该让你去。
当单击combobox时运行macros
您可以参加GotFocus
活动并填写combobox。