두 세트의 동적 목록이 있습니다. List1
&List2
목록은 OFFSET 및 COUNTA를 사용하여 생성되므로 새 항목이 목록 등에 포함됩니다.
셀 A1에서 데이터 유효성 검사 목록 기능을 사용하고 싶지만 이 목록을 모두 참조하고 싶습니다.
VBA에서 이 작업을 수행해야 한다고 들었습니다.
어떤 제안?
나는 현재 다음을 사용합니다:
=(COUNTIF(list1,A1)+COUNTIF(list2,A1))>=1
'사용자 정의' 섹션에서 목록 드롭다운 옵션을 사용할 수 없습니다.
답변1
매크로를 사용하여 값을 단일 목록으로 만들 수 있습니다
Sub Validation()
Dim a$, el As Range
' SET THE LIST RANGE, YOU CAN USE MORE THAN 2
Dim rng1 As Range, rng2 As Range
'DEFINE THE CELLS USED FOR THE LIST, NAMED RANGE OR INDIRECT CAN BE USED
Set rng1 = Range("List1")
Set rng2 = Range("List2")
'COLLECT VALUES FROM LISTS
For Each el In rng1
a = a & el.Value & ","
Next
For Each el In rng2
a = a & el.Value & ","
Next
' SET DESTIANTION OF DATA VALIDATION RULE
With Range("A1").Validation
.Delete
.Add Type:=xlValidateList, Formula1:=a
End With
Set rng1 = Nothing
Set rng2 = Nothing
End Sub
유일한 단점은 목록에 값을 추가할 때마다 매크로를 실행해야 한다는 것입니다. 통합 문서 변경을 통해 이를 입력할 수도 있습니다.