動的リストが2セットありますList1
。List2
リストは OFFSET と COUNTA を使用して作成されるため、新しいエントリはリスト内などに含まれます。
セルA1ではデータ検証リスト関数を使いたいのですが、この2つのリストの両方を参照したいのです。
これを VBA で行う必要があると言われました。
助言がありますか ?
現在使用しているもの:
=(COUNTIF(list1,A1)+COUNTIF(list2,A1))>=1
「カスタム」セクションでは、リストのドロップダウンオプションを使用できません
答え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
唯一の欠点は、リストに値を追加するたびにマクロを実行する必要があることです。これは、ワークブックの変更を介して実行できる可能性があります。