我想添加“数据验证”在一个单元格(这是可变的)使用VBA和范围,这是来在数据验证列表也是可变的。
这里的“range1”是要进入数据验证列表的范围,“rng”是我想要进行数据验证的单元格
Dim range1, rng As range
Set range1 = range("a1:a5")
Set rng = range("b1")
With rng
With .Validation
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
xlBetween, Formula1:="range1"
End With
End With
我得到“应用程序定义和对象定义错误”
也有人可以解释我的不同论点的意义
With .Validation
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
xlBetween, Formula1:="range1"
2条答案
按热度按时间nlejzf6q1#
使用这个:
注意,当你使用
Dim range1, rng As range
时,只有rng
的类型是Range
,但是range1
是Variant
。这就是为什么我使用Dim range1 As Range, rng As Range
。关于参数的含义,你可以读到MSDN,但简而言之:
Type:=xlValidateList
表示验证类型,在这种情况下,您应该从列表中选择值AlertStyle:=xlValidAlertStop
指定验证过程中显示的消息框中使用的图标。如果用户输入列表外的任何值,他/她将得到错误消息。Operator:= xlBetween
是奇数。2只有在提供两个公式进行验证时才能使用它。Formula1:="='" & ws.Name & "'!" & range1.Address
用于列表数据验证,提供列表地址和值(格式为=Sheet!A1:A5
)5uzkadbs2#
如果您对设置数据验证选项感到困惑,我建议您“记录”一个宏并深入研究那里的代码。例如,我刚刚完成了一个子程序来配置批处理中单元格的数据验证。请在下面找到要求和代码。