사용자 데이터 유효성 검사 선택이 이전 사용자 데이터 유효성 검사 선택과 충돌한다는 것을 어떻게 증명할 수 있습니까?

사용자 데이터 유효성 검사 선택이 이전 사용자 데이터 유효성 검사 선택과 충돌한다는 것을 어떻게 증명할 수 있습니까?

여러 계층의 드롭다운 목록 사용, 일련의 사용자 선택 항목을 만들었습니다. 사용자는 왼쪽의 첫 번째 목록에서 선택합니다. 그런 다음 첫 번째 선택 '역할'에 따라 사용자는 '그룹'을 선택할 수 있습니다. 최종 '항목' 선택은 '그룹'을 기준으로 합니다.

그러나 사용자는 이전에 선택한 '항목'과 일치하지 않는 다른 '역할' 또는 '그룹'을 선택하기 위해 돌아갈 수 있습니다.

사용자에게 경고하는 메커니즘이 있습니까?즉시그들이 잘못된 데이터를 입력했다고요?

유효하지 않은 데이터에 '원'을 표시할 수 있다는 것을 알고 있지만 그렇게 하려면 사용자가 직접 확인하고 매번 새로 고쳐야 하는 것 같습니다. 그것이 각 변경 사항에 대해 실행될 수 있다면 완벽할 것입니다.

답변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가능한 각 값을 확인한 다음 참조된 대로 데이터 유효성 검사 목록에 정의된 가능성에 대한 데이터 유효성 검사를 설정합니다 .

데이터에 맞게 가능성을 확장하고 추가 목록에 대한 추가 계층을 추가하세요.

관련 정보