Як я можу продемонструвати, що вибір перевірки даних користувача стикається з попереднім вибором перевірки даних користувачів?


1

Використовуючи декілька ярусів випадаючих списків , я створив ряд виборів користувачів. Користувач вибирає з першого списку зліва. Потім, залежно від першого вибору "Роль", користувач може вибрати "Групу". Остаточний вибір пункту базується на "Групі".

Однак користувач може повернутися назад, щоб вибрати іншу "Роль" або "Групу", яка не відповідає раніше вибраному "Елемент".

Чи існує механізм для попередження користувача негайно , що вони увійшли в цю помилкові дані?

Я знаю, що ви можете «обвести» недійсні дані, але, схоже, користувач вимагає перевірити їх самі та оновлювати їх щоразу. Якби це могло бути спровоковано на кожній зміні, це було б ідеально.


Як щодо визначення варіантів другого випадаючого списку шляхом вибору першого? Кожен раз, коли активується перший, очистіть решту та скиньте параметри.
Raystafarian

Як я це виконав?
DaveRGP

Відповіді:


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

Розширте можливості для відповідності вашим даним та додайте додаткові рівні для додаткових списків.


Вибачте, щойно це помітили. Гектичність означає, що я не зможу перевірити це протягом декількох днів, коли я це робитиму, я очевидно побачу, чи працює це на мене. Не знаю, як я все-таки буду керувати цим. Я припускаю, що відповідь на даний момент правильна, і позначу її як таку.
DaveRGP
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.