데이터 입력 시 Excel UDF와 조건부 사용자 정의 데이터 유효성 검사 결합

데이터 입력 시 Excel UDF와 조건부 사용자 정의 데이터 유효성 검사 결합

따라서 연구에 따르면 VBA 코드를 사용하지 않으면 이것이 불가능할 수도 있지만 그럼에도 불구하고 물어볼 가치가 있다고 생각합니다. 앞의 인접 항목이 특정 값인 경우에만 사용자가 셀에 데이터를 입력할 수 있도록 허용하고 싶습니다.

예를 들어 A1에는 다음 값이 포함된 드롭다운 목록이 있습니다. Staff, Student, Manager, Board. 사용자가 Staff, Student, 를 선택 Manager하면A1, 다음의 값은지하 1층을 사용하여 자동으로 생성됩니다.UDF IF공식이지만 A1에서 선택한 값이 이면 Board사용자는 특정 숫자 값을 입력할 수 있습니다.지하 1층.

사용자 정의 유효성 검사가 반환되어야 하므로진실또는거짓수식 탭에 입력할 수 있는 수식이 없습니다.맞춤 데이터 검증창문.

따라서 셀에 수식을 입력한 다음 셀에서 선택하면 수식이 존재하지 않는 해결 방법이 있습니까?A1이다 Board.

나는 이것이 상당히 이해할 수 있기를 바랍니다.

그렇지 않은 경우 이 문제를 극복할 수 있도록 일부 코드 구성에 도움을 줄 수 있는 사람이 있습니까? 내 VBA 지식은 여전히 ​​매우 아마추어이기 때문입니다.

그래서 내 지식으로는 이런 종류의 구성 코드가 적용될 것이라고 믿습니다.

If Select Case Range(A1).Value = "Staff" Then B1 = Application.WorksheetFunction. (Since a Match function is employed) ElseIf Select Case Range(A1).Value = "Student" Then B1 = Application.WorksheetFunction. ElseIf Select Case Range(A1).Value = "Manager" Then B1 = Application.WorksheetFunction. ElseIf Select Case Range(A1).Value = "Board" Then (My knowledge fails me here) Else B1 ="" End If

가능하다면 실제로는 사용하고 싶지 않습니다.InputBox

당신의 응답을 주셔서 감사합니다.

답변1

누락된 부분이 없으면 UDF는 VBA로 작성되므로 통합 문서에 이미 일부 코드가 있습니다.

또한 사람들이 원하지 않는 셀에 데이터를 입력하지 못하도록 통합 문서가 잠겨 있다고 가정합니다.

이러한 가정을 기반으로 의사 코드를 어느 정도 정리하고 몇 줄의 코드를 추가하여 기존 UDF를 수정합니다.

Dim refCell as Range
refCell = ThisWorkbook.Worksheets(mySheet).Range("A1")
Dim targetCell as Range
targetCell = ThisWorkbook.Worksheets(mySheet).Range("B1")
With refCell
  If .Value = "Staff" or .Value = "Manager" or .Value = "Board" then
    targetCell.Locked = True
    'Call your existing UDF code here to generate the value
  Else
    targetCell.Locked = False
  End If
End With

그러면 시작해야 합니다.

관련 정보