1

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

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

Существует ли механизм для немедленного предупреждения пользователя о том, что он ввел эти ошибочные данные?

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

1 ответ1

1

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

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .