VBA - ComboBox,其值在命名范围内

时间:2018-05-14 14:23:38

标签: excel vba excel-vba excel-formula

下午好,

我正在尝试使用命名范围和另一个组合框的组合在组合框中加载一些值:

CBOX_NOMENCLAT.value = "SOCIAL"

当第一个组合框的值发生变化时,它会加载我遇到问题的第二个:

Private Sub CBOX_NOMENCLAT_Change()
    With CBOX_MOTIF
        .RowSource = Range(CBOX_NOMENCLAT)
    End With
End Sub

我确实有一个名为"SOCIAL"的命名范围,返回3个值。我希望将它们加载到我的CBOX_MOTIF中(参见下面的“MOTIF OD”)。

My 2 combo boxes

我考虑过使用INDIRECT函数,但我找不到让它工作的方法。

你能帮帮我吗?谢谢!

2 个答案:

答案 0 :(得分:2)

请尝试以下操作。

Private Sub CBOX_NOMENCLAT_Change()
    With CBOX_MOTIF
        .RowSource = CBOX_NOMENCLAT.Value
    End With
End Sub

答案 1 :(得分:0)

尝试:

.RowSource = Range("MyWorkbook.xls!MySheet!" & CBOX_NOMENCLAT.Value)

根据MSDN,引用命名范围的语法是:

[工作簿名称]![工作表名称]![命名范围]

要评估第一个组合框值并插入到命名范围部分,可以从引用中提取对象引用并使用和号进行连接。

只有在同一工作表中存在所有必需的命名范围时,才能执行此操作。否则,您还需要动态设置工作表名称。