我怎样才能dynamic地填充一个Excelcombobox与另一个表上的命名表的内容?

在一张Excel表上我有一个combobox。

在另一张表中,我有一个带有命名列(“KontoNr”)的表格,它应该input到combobox中。 表和列在名称pipe理器中命名并显示为=tabKontenplanKontoNr =tabKontenplan[KontoNr]

现在我没有成功地试图填充这样的comboxbox:

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

 combobox.listfillrange = "=KontoNr" 

也不起作用。 没有错误,combobox只是空的…为什么呢?

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

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

这就是我需要做的。 删除命名范围前的= ,它“正常工作”。 确保定义的名字在范围内,一切都会好起来的。

如果命名范围的作用域是其他工作表,则不起作用。 删除名称并在工作簿范围内重新创build它。

假设“另一张纸”是Sheet2,

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

更正的答案:

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