我正在尝试开发一个内部使用表单,其中个人可以从下拉列表中进行选择,该列表将根据他们的选择过滤另一个下拉列表。我已经查看了间接依赖动态列表的选项,但对于可能包含数百个具有数千(或更多)排列的数百个不同值的列表,这似乎不可行。我之前的小组创建了一堆宏来解决这个问题,但我不得不相信有一种更简单的方法来管理这些信息。
有没有办法可以从单个单元格中开发下拉列表?任何见解将不胜感激。
更新:使用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
如果可能的话,我想使用现有的下拉项,而不是将单元格变成下拉项。
答案 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
例如: