한 시트에 인접하지 않은 몇 개의 셀이 있는데 다른 시트의 셀에서 데이터 유효성 검사 소스로 사용하려고합니다. 그러나 데이터 유효성 검사에서 기본적으로 이것을 허용하지 않는 것 같습니다.
그래서 첫 번째 시트에서 원하는 값을 참조하는 다른 시트의 인접한 셀에 수식을 넣는 해결 방법을 시도했습니다. 그런 다음 두 번째 범위의 이름을 지정하고 데이터 유효성 검사 소스 필드에서 해당 이름을 참조했습니다.
이제 첫 번째 시트의 셀 중 하나가 비어 있으면 첫 번째 시트의 빈을 참조하는 두 번째 시트의 셀이 비어있는 0
대신 표시 되는 문제가 있습니다. 나는 이와 같은 일을 함으로써이 문제를 해결하려고 노력했다 =IF(Sheet1!A1="","",Sheet1!A1)
. 그러나 이것이 실제로 수식 결과를 빈 셀과 동일하게 만드는 것은 아닙니다 .
데이터 유효성 검사에 셀 내 드롭 다운을 포함시키려는 경우 대부분 문제가됩니다. 여기에서 내가 선택한 사항 0
은 소스 데이터에 공백이있는 경우 드롭 다운에 빈 줄 이있는 것으로 보입니다 . 공백이 실제 공백 인 경우에는 발생하지 않습니다.
따라서이 문제를 해결할 수있는 방법이 있습니까?
예:
Sheet1
A1 = Value1
A5 = Value2
A9 = Value3
A13 = Value4
A17 = (셀이 비어 있음)
A21 = (셀이 비어 있음)
Sheet2
A1 =Sheet1!A1
(반환 Value1
)
A2 =Sheet1!A5
(반환 Value2
)
A3 =Sheet1!A9
(반환 Value3
)
A4 =Sheet1!A13
(반환 Value4
)
A5 =Sheet1!A17
(반환 0
)
A6 =IF(Sheet1!A21="","",Sheet1!A21)
(공백으로 표시)
Sheet2!A1:A6
이름이 Validation
입니다. 에서 Sheet3!A1
데이터 유효성 검사는 소스 =Validation
및 셀 내 드롭 다운과 함께 적용 됩니다. 셀 내 드롭 다운에 다음이 표시됩니다.
값 1
값 2
VALUE3
VALUE4
0
(빈셀 포함)
이러한 조건에서 필자 Sheet3!A1
는 채워진 Sheet2!A1:A4
상태에서도 Sheet2!A5:A6
사용 가능한 상태를 유지하면서 표시 되는 드롭 다운을 초래하는 구성을 찾고 있습니다. 또는 드롭 다운 Sheet3!A1
이 표시되는 Sheet1!A1,Sheet1!A5,Sheet1!A9,Sheet1!A13
동시에 Sheet1!A17,Sheet1!A21
채워진 상태에서도 계속 사용할 수 있어야합니다.
방법 중 하나가 필요한 것 같습니다.
- 직접에 인접하지 않은 세포를 해결
Sheet1
내 데이터 유효성 검사 소스에서,
또는 - 의 세포를 얻기
Validation
에 범위Sheet2
에 실제로는 그들의 표적이 때 빈 셀을 반환Sheet1
비어 있습니다.
답변
원본 게시물에 설명 된 방법 사용 데이터 유효성 검사 드롭 다운을 만들려면 공백을 제외하십시오 .
이것을 다음 방법과 결합하십시오.
Public Sub ClearDataValidation(destrng As Range)
destrng.Validation.Delete
End Sub
Public Sub LoadDataValidation(srcrng As Range, destrng As Range)
'Verify a 1x1 sized Range was passed
If destrng.Rows.Count <> 1 Or destrng.Columns.Count <> 1 Then
InvalidValue destrng.Worksheet, "LoadDataValidation", _
"Range: " & destrng.name & " was passed to method. This method expects a " & vbCrLf & vbCrLf & _
" 1 Row x 1 Column Range to be passed. Anything outside of the 1x1 " & vbCrLf & vbCrLf & _
"size will result in invalid conditions"
Exit Sub
End If
With Range(destrng.Address).Validation
.Delete
.Add xlValidateList, xlValidAlertStop, xlBetween, DistinctValues(srcrng)
End With
End Sub
용법:
LoadDataValidation Range("Table1[column1]"), Range("destinationCell")