Veri doğrulama listelerinizi Sayfa2'de kurduğunuzu ve ilk veri doğrulama işleminizi kurduğunuzu varsayalım Sheet1!A2
. Ve Sheet1!B2
neyin seçildiğine bağlı olarak geçerliliğini değiştirmek istediniz Sheet1!A2
. Bu kodu Sayfa1'deki çalışma sayfası modülüne yerleştirirsiniz :
kod
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
Ardından, if
doğrulama eklemek istediğiniz her ek liste için ek ifadeler hazırlarsınız.
açıklama
Temel olarak bu, eğer çalışma sayfasında bir değişiklik olursa, olup olmadığını A2
ve bir değer içerip içermediğini kontrol edin . Bu değer yalnızca veri doğrulama sayfanızda olacaktır. Öyleyse eğer bu şeyler doğruysa:
Her bir olası değeri kontrol edin ve ardından veri doğrulama B2
işlemini, başvuru yaptığınız gibi veri doğrulama listenizde tanımlanan olanaklara ayarlayın .
Verilerinize uyacak olasılıkları genişletin ve ek listeler için ek katmanlar ekleyin.