代码之家  ›  专栏  ›  技术社区  ›  Dr.YSG

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

  •  0
  • Dr.YSG  · 技术社区  · 7 年前

    我需要什么参数 VBA 呼叫获取 DataValidation 使用 List ,通过 Named RANGE ?

    我们的范围叫做 WinPercent . 它已经通过 vba .

    违约 Stop 警报是好的,但我想得到的东西,如下图所示:

    enter image description here

    现在,VBA执行时没有错误,但是当检查当前数据验证时,我会得到一个弹出窗口:

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

    VBA代码是:

    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
    

    我看过这篇文章:

    How to add data validation to a cell using VBA

    更新

    这是一个奇怪的观察。在删除DropList工作表(验证所指向的位置)之前,我在删除之前和删除旧验证之后放置了一个断点。我在检查J3单元的验证时(使用GUI)会弹出一个。上面说有些细胞没有验证,我想扩展它吗。如果我说不,那就没有证据了。 但如果我说是,那就回到以前的验证。无论我说什么,在这个时候工作表上都不应该有验证。

    下面是我如何删除验证,然后删除旧表

        Set dest = wbk.Sheets("DropLists")
        wbk.Names("YesNoList").Delete
        Set target = wbk.Worksheets("StaffRequest").range("J3")
        target.Validation.Delete 'delete previous validation
        Application.DisplayAlerts = False
            dest.Delete
        Application.DisplayAlerts = True
    
    0 回复  |  直到 7 年前
    推荐文章