Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/google-maps/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用VBA组合框(窗体控件,工作表内部)中的项运行宏_Vba_Excel_Combobox - Fatal编程技术网

使用VBA组合框(窗体控件,工作表内部)中的项运行宏

使用VBA组合框(窗体控件,工作表内部)中的项运行宏,vba,excel,combobox,Vba,Excel,Combobox,因此,我想要实现的是,当有人在组合框(位于我的工作表中单元格A1附近)中单击某一年时,宏将根据单击的年份运行。我希望列表项存储在VBA代码本身中,而不是在工作表上选择它们(我还没有找到一个关于组合框的教程不使用工作表数据) 我创建了一个按钮,将数据加载到ComboBox1中 这是目前的代码(我不想严格遵守它,因此如果有更简单的方法编写此代码,请让我知道): 我没有为ShowOnly#####列粘贴代码(测试和运行没有问题) 目前,_GotFocus不起作用 我提前感谢您的所有时间和帮助:)有两种

因此,我想要实现的是,当有人在组合框(位于我的工作表中单元格A1附近)中单击某一年时,宏将根据单击的年份运行。我希望列表项存储在VBA代码本身中,而不是在工作表上选择它们(我还没有找到一个关于组合框的教程不使用工作表数据)

我创建了一个按钮,将数据加载到ComboBox1中

这是目前的代码(我不想严格遵守它,因此如果有更简单的方法编写此代码,请让我知道):

我没有为ShowOnly#####列粘贴代码(测试和运行没有问题)

目前,_GotFocus不起作用


我提前感谢您的所有时间和帮助:)

有两种组合框

看看这个问题和答案。这会让你走的


您可以选择
GotFocus
事件并填写组合框。

有两种类型的组合框

看看这个问题和答案。这会让你走的

您可以选择
GotFocus
事件并填写组合框。

使用此选项

Sheets(1).Shapes("ComboBox1").ControlFormat.List = Array("2015", "2016", "2017", "2018", "2019")
确保
Sheets(1)
引用了“ComboBox1”组合框实际所在的工作表

使用工作表名称更安全,如

Sheets("mySheet").Shapes("ComboBox1").ControlFormat.List = Array("2015", "2016", "2017", "2018", "2019")
最后,如果要用一些工作表范围内容填充组合框,请使用:

Sheets("mySheet").Shapes("ComboBox1").ControlFormat.ListFillRange = "'My Sheet'!A1:A5"
用这个

Sheets(1).Shapes("ComboBox1").ControlFormat.List = Array("2015", "2016", "2017", "2018", "2019")
确保
Sheets(1)
引用了“ComboBox1”组合框实际所在的工作表

使用工作表名称更安全,如

Sheets("mySheet").Shapes("ComboBox1").ControlFormat.List = Array("2015", "2016", "2017", "2018", "2019")
最后,如果要用一些工作表范围内容填充组合框,请使用:

Sheets("mySheet").Shapes("ComboBox1").ControlFormat.ListFillRange = "'My Sheet'!A1:A5"

谢谢你,所以我需要将“_change”改为“_GtFocus”,但是你知道为什么我的组合框仍然是空的吗?如何使用VBA加载数据?我不想从工作表中选择列表数据。我看到您已将其整理好。因此,请使用链接询问有关
GotFocus
的新问题,然后将问题的链接作为评论发布在此处,这样我们可以帮助您。谢谢您,因此我需要将“\u change”更改为“\u GtFocus”,但您知道为什么我的组合框仍然为空吗?如何使用VBA加载数据?我不想从工作表中选择列表数据。我看到您已将其整理好。因此,请使用链接询问有关
GotFocus
的新问题,然后将问题的链接作为注释发布在此处,以便我们可以帮助您。运行该代码(带有数组的代码)时,我得到的结果是运行时错误438:对象不支持此属性或方法。我不知道这里发生了什么,哪一行抛出了那个错误?您可能需要更新代码窗格问题中的实际代码。我创建了一个按钮来执行以下代码:Sheets(“MacroBase”).Shapes(“ComboBox1”).ControlFormat.List=Array(“2015”、“2016”、“2017”、“2018”、“2019”),同一行抛出错误“以下”代码是什么?您最好更新问题中的代码抱歉,我对SO很陌生:)运行该代码(带有数组的代码)时得到的结果是运行时错误438:对象不支持此属性或方法。我不知道这里发生了什么,哪一行抛出了那个错误?您可能需要更新代码窗格问题中的实际代码。我创建了一个按钮来执行以下代码:Sheets(“MacroBase”).Shapes(“ComboBox1”).ControlFormat.List=Array(“2015”、“2016”、“2017”、“2018”、“2019”),同一行抛出错误“以下”代码是什么?你最好更新问题中的代码对不起,我对SO很陌生:)