使用“属性窗口”设置列表框的controlsource值

时间:2014-06-19 21:24:55

标签: forms excel vba excel-vba listbox

我是VBA的新手,目前我仍在研究该语言最基本的想法。在我的VBA代码研究中,我没有能够手动编写我需要的代码,所以,同时,我一直在使用VBA编辑器通过属性窗口输入属性值。事实证明这比我预想的要困难得多。我的目标是为VBA表单创建一个下拉列表。我理解我的一个选择是通过将其输入到位于ControlSource属性右侧的值字段中来引用我的Excel工作表中的一系列单元格。我尝试输入所需范围总是会出现同样的错误:

无法设置ControlSource属性。无效的财产价值。

我尝试查看VBA帮助文件,甚至在线搜索。我没有幸运地找到进入这个领域的正确语法。

我假设我可能遇到类似的问题,因为我尝试通过属性窗口设置其他属性值。因此,我正在努力学习我的VBA课程,所以我可以简单地编写原始代码。但这需要时间,我需要这个表格尽快工作。

那里有没有人不介意将他们的大脑借给他一会儿?我将非常感激。这项工作会给我带来很多压力。

感谢阅读!

1 个答案:

答案 0 :(得分:0)

tigeravatar提到的,对我而言,对于ComboBox以及ListBox也适用。

如果我将=a1:b5输入到ComboBox' RowSource,如果我打开表单和Combobox,我会看到单元格的值。对于高效版本,使用$sheet!的Tigeravatar符号可能更为可靠。

RowSource是框从中获取显示项目的位置。 ControlSource是最终链接的所选值的位置。因此,如果我只将A10写入ControlSource,然后打开表单,然后选择一个值,关闭表单,我会看到所选值填充到Excel表单字段A10中。

有时,启动新的UserForm并添加一些简单的新控件会有所帮助。如果你四处寻找,你可能会以一种意想不到的方式改变影响行为的属性值,然后你会迷失方向。我已经使用Office 2010进行了测试。如果您有其他版本,论坛读者可能很重要。