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