如何使用不同工作表上的命名表的内容动态填充Excel组合框?

时间:2017-08-28 15:56:33

标签: excel vba

在一张Excel工作表上我有一个组合框。

在另一张纸上,我有一个带有命名列的表(" KontoNr"),它应该输入组合框。表和列在名称管理器中命名,显示为=tabKontenplanKontoNr =tabKontenplan[KontoNr]

现在我尝试像这样填写comboxbox失败了:

combobox.listfillrange = "=tabKontenplan![KontoNr]"

combobox.listfillrange = "=KontoNr"

也行不通。 没有错误,组合框只是空着......为什么会这样?

2 个答案:

答案 0 :(得分:1)

我在工作表上添加了一个空的ActiveX ListBox控件,然后在该工作表的Range中输入了几个随机值,命名为范围VALUES,然后添加了此代码在工作表的代码隐藏中:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    ListBox1.ListFillRange = "VALUES"
End Sub

这就是我需要做的一切。删除指定范围前面的=,它“正常”。确保定义的名称在范围内,并且一切顺利。

如果命名范围是作用域到另一个工作表,它将无法工作。删除名称并在工作簿范围中重新创建。

答案 1 :(得分:0)

假设"另一张表"是Sheet2,

no good: combobox.listfillrange = "=" & Sheet2.Range("KontoNr").Address 

更正的答案:

combobox.listfillrange = "=Sheet2!" & Sheet2.Range("KontoNr").Address