使用逗号分隔数据的Excel动态下拉列表

时间:2015-02-04 14:37:07

标签: excel drop-down-menu dropdownbox

我正在尝试开发一个内部使用表单,其中个人可以从下拉列表中进行选择,该列表将根据他们的选择过滤另一个下拉列表。我已经查看了间接依赖动态列表的选项,但对于可能包含数百个具有数千(或更多)排列的数百个不同值的列表,这似乎不可行。我之前的小组创建了一堆宏来解决这个问题,但我不得不相信有一种更简单的方法来管理这些信息。

有没有办法可以从单个单元格中开发下拉列表?任何见解将不胜感激。

更新:使用Gary的部分代码,我能够解决部分问题:

Sub Marco4()
    r = Range("H24").Value
    s = Application.VLookup(r, Worksheets("Data").Range("R2:T4"), 3, False)
    Range("B25").Select
    With ActiveCell.Validation
        .Delete
        .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
            xlBetween, Formula1:=s
        .IgnoreBlank = True
        .InCellDropdown = True
        .InputTitle = ""
        .ErrorTitle = ""
        .InputMessage = ""
        .ErrorMessage = ""
        .ShowInput = True
        .ShowError = True
    End With
End Sub

如果可能的话,我想使用现有的下拉项,而不是将单元格变成下拉项。

1 个答案:

答案 0 :(得分:0)

假设单元格 C2 包含逗号分隔的字符串。这个简单的宏将activecell的 Data Validation 设置为该字符串:

Sub LeeCarver()
    Dim s As String
    s = Range("C2").Value
    With ActiveCell.Validation
        .Delete
        .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
            xlBetween, Formula1:=s
        .IgnoreBlank = True
        .InCellDropdown = True
        .InputTitle = ""
        .ErrorTitle = ""
        .InputMessage = ""
        .ErrorMessage = ""
        .ShowInput = True
        .ShowError = True
    End With
End Sub

例如:

enter image description here