Как я могу продемонстрировать, что выбор проверки данных пользователя конфликтует с предыдущим выбором проверки данных пользователя?

Как я могу продемонстрировать, что выбор проверки данных пользователя конфликтует с предыдущим выбором проверки данных пользователя?

Использование нескольких уровней раскрывающихся списков, я создал ряд пользовательских выборов. Пользователь выбирает из первого списка слева. Затем в зависимости от первого выбора «Роль» пользователь может выбрать «Группу». Окончательный выбор «Элемент» основан на «Группе».

Однако пользователь может затем вернуться и выбрать другую «Роль» или «Группу», которая не соответствует ранее выбранному «Элементу».

Есть ли механизм оповещения пользователя?немедленночто они ввели эти ошибочные данные?

Я знаю, что можно «обвести» недействительные данные, но это, похоже, требует от пользователя самостоятельной проверки и обновления каждый раз. Если бы это можно было бы запускать при каждом изменении, это было бы идеально.

решение1

Допустим, вы настроили списки проверки данных на Листе2, и настроили первую проверку данных на Sheet1!A2. И вы хотите изменить проверку Sheet1!B2на основе того, что было выбрано в Sheet1!A2. Вы бы поместили этот код вмодуль рабочего листа для Sheet1:

Код

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с возможностями, определенными в вашем списке проверки данных, как указано.

Расширьте возможности для размещения ваших данных и добавьте дополнительные уровни для дополнительных списков.

Связанный контент