如何在excel中从不连续的范围进行数据验证

时间:2014-04-09 12:40:17

标签: excel vba

假设我有一些范围内的数据" A1:A10"。我想在范围" B1"。

中创建数据验证列表

我创建了一个包含来自" A1:A5"的数据的组。和" A8:A10"。让我们说组名是"芒果"。现在我想在单元格中创建数据验证" B1"来自这个群体(芒果)。当我尝试创建它时

它抛出错误"源当前评估为错误"。有人可以帮我完成这个

1 个答案:

答案 0 :(得分:0)

您似乎要避免在DV列表中包含 A6 A7 单元格。要完成此尝试:

Sub DisJointDatJoint()
    Dim rDV As Range, sDV As String
    Set rDV = Range("A1:A5,A8:A10")
    sDV = ""
    For Each r In rDV
        sDV = sDV & r.Value & ","
    Next r
    sDV = Mid(sDV, 1, Len(sDV) - 1)
    With Selection.Validation
            .Delete
            .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
            xlBetween, Formula1:=sDV
            .IgnoreBlank = True
            .InCellDropdown = True
            .InputTitle = ""
            .ErrorTitle = ""
            .InputMessage = ""
            .ErrorMessage = ""
            .ShowInput = True
            .ShowError = True
    End With
End Sub

请注意静态列表方法缺乏波动性..........另一种方法是使用" helper"细胞