여러 계층의 드롭다운 목록 사용, 일련의 사용자 선택 항목을 만들었습니다. 사용자는 왼쪽의 첫 번째 목록에서 선택합니다. 그런 다음 첫 번째 선택 '역할'에 따라 사용자는 '그룹'을 선택할 수 있습니다. 최종 '항목' 선택은 '그룹'을 기준으로 합니다.
그러나 사용자는 이전에 선택한 '항목'과 일치하지 않는 다른 '역할' 또는 '그룹'을 선택하기 위해 돌아갈 수 있습니다.
사용자에게 경고하는 메커니즘이 있습니까?즉시그들이 잘못된 데이터를 입력했다고요?
유효하지 않은 데이터에 '원'을 표시할 수 있다는 것을 알고 있지만 그렇게 하려면 사용자가 직접 확인하고 매번 새로 고쳐야 하는 것 같습니다. 그것이 각 변경 사항에 대해 실행될 수 있다면 완벽할 것입니다.
답변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
가능한 각 값을 확인한 다음 참조된 대로 데이터 유효성 검사 목록에 정의된 가능성에 대한 데이터 유효성 검사를 설정합니다 .
데이터에 맞게 가능성을 확장하고 추가 목록에 대한 추가 계층을 추가하세요.