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