Validation 范围验证过程调用无效

Validation 范围验证过程调用无效,validation,excel,vba,Validation,Excel,Vba,我有一个会话,在这个会话中,我试图将列表类型验证设置为一个不连续的范围。列表范围来自另一个名为Range5的工作表 With Range("storeRanges").Cells.Validation Dim ValidationList As Variant ValidationList = Sheet2.Range("Range5") .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, _ Operator:=x

我有一个会话,在这个会话中,我试图将列表类型验证设置为一个不连续的范围。列表范围来自另一个名为Range5的工作表

With Range("storeRanges").Cells.Validation

Dim ValidationList As Variant
ValidationList = Sheet2.Range("Range5")

   .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, _
    Operator:=xlEqual, Formula1:=Join(ValidationList, ",")

End With
我在.add行上得到一个无效的过程调用或参数。谢谢你的帮助

因此,解决方案是:

With Range("storeRanges").Cells.Validation

Dim ValidationList As Variant
ValidationList = Sheet2.Range("Range5")

.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, _
Operator:=xlEqual, Formula1:="=Range5"

End With

请注意.Delete和公式1:==Range5。

Join仅适用于1D数组。指定给变量的范围值始终为2D。如果范围是一列,则将其转置;如果是一行,转置两次。是的,在这段时间内算出了。解决方法为:。添加类型:=xlValidateList,警报样式:=xlValidAlertStop,u运算符:=xlEqual,公式1:==Range5,我将其放在。删除之前。添加。请不要在标题中写入[Solved]。。。相反,把你的答案作为答案而不是评论发表,然后接受你自己的答案。