在vba中为组合框分配命名列表

时间:2017-03-21 21:46:11

标签: excel vba excel-vba combobox

我尝试根据特定组合框的值动态地为每个组合框分配一个列表。这个想法是用户从特定组合框中选择一个类别,所有其他组合框以命名列表的形式从该类别中获取项目。

所以结构就像

分类

第1类

类别2

第1类

项目1 第2项

等等。我有一个假的名字,但现在我使用真正的命名范围,代码中断了。它正在打破" For every rng In ws.Range(str)"并说明"方法'范围'对象' _worksheet'失败。

此代码有效。或者工作。然后我改变了ws指向另一张命名范围,现在没有任何作用。

CBOCategory的值是所有命名范围列表中的任何值,但似乎Excel没有看到它们中的任何一个!我试图触发甚至列表填充分配,而不是添加每个项目并得到类似的错误

paste <(cut -f1 test1.txt) <(cut -f3 test1.txt) <(cut -f2 test1.txt) 

1 个答案:

答案 0 :(得分:0)

代码工作正常。问题的根本原因是命名范围是由公式动态设置的。代码运行时,公式无法正确计算,因此vba无法使用动态设置的命名范围来查找另一个,也可以动态设置命名范围。

解决方案是明确设置命名范围。然后代码工作正常。