我需要什么参数
VBA
呼叫获取
DataValidation
使用
List
,通过
Named RANGE
?
我们的范围叫做
WinPercent
. 它已经通过
vba
.
违约
Stop
警报是好的,但我想得到的东西,如下图所示:
现在,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