Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel 使用宏创建数据验证列表_Excel_Vba - Fatal编程技术网

Excel 使用宏创建数据验证列表

Excel 使用宏创建数据验证列表,excel,vba,Excel,Vba,我需要使用宏创建一个下拉菜单。在互联网上,我找到了下面的代码,它可以完美地工作。唯一的问题是我需要从特定的工作表(比如说Sheet2)中获取下拉菜单上的内容(即=$B$1:$B$6)。尝试了几次指向特定工作表的尝试,但不幸的是没有一次成功 With Range("A1:A100") With .Validation .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _

我需要使用宏创建一个下拉菜单。在互联网上,我找到了下面的代码,它可以完美地工作。唯一的问题是我需要从特定的工作表(比如说
Sheet2
)中获取下拉菜单上的内容(即
=$B$1:$B$6)。尝试了几次指向特定工作表的尝试,但不幸的是没有一次成功

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

由于您指定希望验证来自
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
<>最后,你应该考虑在工作表中对你的<代码>范围(“A1:A100”)进行限定,这样就有点像

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

而且更好的是,考虑用工作簿对以上内容进行限定。