如何证明用户数据验证选择与之前的用户数据验证选择相冲突?

如何证明用户数据验证选择与之前的用户数据验证选择相冲突?

使用多层下拉列表,我创建了一系列用户选择。用户从左侧的第一个列表中进行选择。然后根据第一个选择“角色”,用户可以选择“组”。最终的“项目”选择基于“组”。

但是,用户可以返回选择与之前选择的“项目”不匹配的其他“角色”或“组”。

是否有机制提醒用户立即地他们输入了错误的数据?

我知道你可以“圈出”无效数据,但这似乎需要用户自己检查,并且每次都刷新。如果每次更改时都能触发该操作,那就太完美了。

答案1

假设您在 Sheet2 上设置了数据验证列表,并在 上设置了第一个数据验证。并且您想根据 中选择的内容Sheet1!A2更改 的验证。您可以将此代码放在Sheet1!B2Sheet1!A2Sheet1 的工作表模块

代码

Sub worksheet_change(ByVal Target As Range)
If Not Intersect(Target, Range("A2")) Is Nothing Then
    If Target.Value = "one" Then
        With Range("B2").Validation
                 .Delete
                .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:=xlBetween, Formula1:="=Sheet2!B1:B2"
        End With
    End If
    If Target.Value = "two" Then
            With Range("B2").Validation
                 .Delete
                .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:=xlBetween, Formula1:="=Sheet2!B3:B4"
            End With
    End If
    If Target.Value = "three" Then
                With Range("B2").Validation
                     .Delete
                    .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:=xlBetween, Formula1:="=Sheet2!B5:B6"
                End With
    End If
End If


End Sub

if然后,您将为想要添加验证的每个附加列表设置附加语句。

解释

基本上,这意味着如果工作表上有变化,请检查它是否在A2并且包含一个值。此值将仅在您的数据验证表中。因此,如果这些情况属实,则:

检查每个可能的值,然后将数据验证设置B2为参考的数据验证列表中定义的可能性。

扩展适合您的数据的可能性并为附加列表添加额外的层级。

相关内容