通过VBA脚本将数据验证添加到Excel单元格

时间:2019-01-24 17:58:42

标签: excel vba

VBA调用中,我需要什么参数才能获得使用DataValidation引用的List的{​​{1}}?

我们的范围称为Named RANGE。已经通过WinPercent进行了定义。

默认的vba警报是可以的,但我想获得类似以下所示的功能:

enter image description here

现在,VBA的执行没有错误,但是当检查当前的DataValidation时,我会弹出一个窗口:

“所选内容包含多种验证类型。删除当前设置并继续”

VBA代码为:

Stop

我看过SO文章:

How to add data validation to a cell using VBA

更新

这是一个奇怪的发现。在删除DropList工作表(验证所指向的地方)之前,我在删除之前和删除旧验证之后放置了一个断点。当检查J3单元(使用GUI)的验证时,会弹出。它说有些单元格没有验证,我是否想扩展它。如果我拒绝,则没有任何验证。 但是,如果我说“是”,那么它可以返回到旧的验证。无论我说什么,目前都不应对该工作表进行验证。

这是我删除验证然后删除旧表的方法

Sub addWinPercent(wbk As Workbook)
    Dim target As range
    wbk.Names.Add Name:="WinPercent", RefersTo:=wbk.Sheets("DropLists").range("B1:B5")
    Set target = wbk.Worksheets("StaffRequest").range("J3")
    With target.Validation
        .Delete 'delete previous validation
        .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Formula1:="=WinPercent"
    End With
End Sub

0 个答案:

没有答案