使用宏创建数据验证列表

时间:2018-11-18 11:13:51

标签: excel vba excel-vba

我需要使用宏创建一个下拉菜单。在Internet上,我发现下面的代码非常有效。唯一的问题是,我需要从特定工作表(例如=$B$1:$B$6)中获取下拉菜单(即Sheet2)上的内容。尝试过几次尝试直接转到特定工作表的尝试,但不幸的是,没有一次奏效。

With Range("A1:A100")
    With .Validation
        .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
                    xlBetween, Formula1:="=$B$1:$B$6"
    End With
End With

1 个答案:

答案 0 :(得分:3)

由于您要指定要来自Sheet2的验证,因此需要将其添加到公式Formula1:="=Sheet2!$B$1:$B$6"中。

我还将添加一个.delete来先清除所有先前的验证-否则,如果您从先前的尝试中进行了验证,则可能会遇到错误。

With Range("A1:A100")
    With .Validation
        .Delete
        .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
                xlBetween, Formula1:="=Sheet2!$B$1:$B$6"
    End With
End With

最后,您应该真正考虑使用工作表对Range("A1:A100")进行限定,例如

With Worksheets("Sheet1").Range("A1:A100")

更好的是,也考虑将上述内容与您的工作簿一起使用。