最後に、データ検証とINDIRECT関数を使用して、Excelで動的なカスケードリストのセットを作成する方法を見つけました。しかし、私は問題に直面しています。
データ検証リストで変更が行われるたびに、後続のすべてのリストがデフォルト値に設定されるように、スプレッドシートを設定したいと思います。例えば:
List1、List2、List3、およびList4があるとします。各リストの値は、リストの前に行われた選択に依存します。スプレッドシートを起動すると、すべてのリストがデフォルトで「すべて」になります。ユーザーがList1で値を選択すると、List2は有効な選択肢のセットで更新されます。List2をこれらの選択肢のいずれかにデフォルト設定します。ただし、List2に正しい選択オプションのセットを取り込むことはできますが、希望するデフォルト値を割り当てることはできません。
同様に、ユーザーがList1、List2、およびList3で選択を行ってから戻ってList1を変更した場合、List2-List4をデフォルトの「ALL」に戻したいと思います。
どうすればいいですか?
3
これは、VBA worksheet_changeイベントトリガーのジョブです。現時点では詳細を説明する時間はありませんが(後で支援が必要な場合は後で説明します)、そこから研究を指示する必要があります。
—
Excellll
おそらく今までに解決したか、あきらめたでしょう。Excellllには、ワークシート変更イベントが最も簡単であることに同意します。ただし、データ検証のリストオプションでは、ソースはなどの式にすることができます
—
トニーダリモア
=IF(A1="List1",C1:C5,D1:D4)
。リストから選択したセルA1の値でこれをテストしましたが、それはあなたが求める方法で機能します。
この問題はまだ発生していますか?
—
タマラウィスマン
参考までに、私がこの問題に採用している非VBAメソッドは、保持している現在の値が現在のINDIRECT()ref範囲の値と一致するかどうかをチェックする条件付き書式を後続のセルに適用することです。そうでない場合、セルは赤に変わるか、値が消える(フォント/背景が一致する)ため、ユーザーはそのセルの値を更新/再選択する必要があることを認識します。
—
ジェリーボーケール
VBAの方法と私は上記のCF方法の両方を説明するために、そこにあるサンプルファイルは、ここで DependentLists3.xls
—
ジェリーボーケール