在VBA
调用中,我需要什么参数才能获得使用DataValidation
引用的List
的{{1}}?
我们的范围称为Named RANGE
。已经通过WinPercent
进行了定义。
默认的vba
警报是可以的,但我想获得类似以下所示的功能:
现在,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