如何正确引用Excelcombobox的源代码的dynamic列表?

我的用户表单上有两个combobox。 第一个提供了来自命名列表“类别”的选项。 我在这个combobox的行源中input了“类别”这个单词,它能正常提供“类别”列表中所有项目的下拉菜单。

类别列表中的每个项目本身都是一个命名范围。 我想第二个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 

这将为第一个comboboxselect的值写入单元格,然后尝试获取第二个combobox来读取此…

任何帮助将是macros伟的!

玩笑

您需要获取单元格D10的文本指定的范围,而不仅仅是获取范围D10

将您的代码更改为:

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

多谢你们。 我相信你们都是对的。 纯粹是偶然的,我偶然发现了我的问题的原因。

我的主要列表是作为一个列 – RowSource阅读正常。

我的第二个列表都写成行,哪个RowSource只是从第一个项目拉。 将行重新排列为列,并更新Name Manager对其进行sorting。

多恼人的答案

再次感谢!