如何正确引用Excel ComboBox源的动态列表?

时间:2013-08-22 16:13:26

标签: excel vba excel-vba combobox

我的userform上有两个ComboBox。第一个提供来自命名列表“类别”的选项。我在这个ComboBox的行源中键入了单词Category,它可以很好地为类别列表中的所有项目提供下拉列表。

“类别”列表中的每个项目本身都是一个命名范围。我希望第二个ComboBox(供应商)读取第一个中选择的项目,然后提供所选命名范围内的选项。目前它只提供每个命名范围中的第一个项目。我目前正在为第一个ComboBox使用以下代码。

Private Sub Category_Change()

Worksheets("Input").Range("D10") = Category.Value
'Worksheets("Input").Range("D10") = CStr(Worksheets("Input").Range("D10"))
Supplier.RowSource = Worksheets("Input").Range("D10")
End Sub

这会将为第一个ComboBox选择的值写入单元格,然后尝试让第二个ComboBox读取此内容...

任何帮助都会很棒!

约什

2 个答案:

答案 0 :(得分:2)

您需要获取单元格D10中文字指定的范围,而不只是获取范围D10

将您的代码更改为:

Supplier.RowSource = Range(Worksheets("Input").Range("D10").Value)

答案 1 :(得分:0)

谢谢你们。我相信你们都是正确的。我偶然发现了问题的原因。

我的主要列表是作为列写的 - RowSource读得很好。

我的辅助列表都写成行 - RowSource只从中拉出第一个项目。将行重新排列为列并更新名称管理器对其进行排序。

多么令人恼火的答案......

再次感谢!