時間の経過とともにより多くの値が追加されるデータの列があります。ドロップダウンオプションが列の現在の内容を反映するように、この列の値を別のワークシートのリスト検証に使用したいと思います。ListColumn
次の式を使用して名前付き範囲を作成してみました。
=ADDRESS(3,12,1,1,"DataSource")&":"&ADDRESS(COUNTA('DataSource'!$L:$L),12,1,1,"DataSource")
セルの検証を追加しようとすると、[許可:'リスト]を選択=ListColumn
して数式ボックスに入力すると、次のエラーメッセージが表示されます。
The list source must be a delimited list, or a reference to a single row or column.
数式全体をでラップしようとしINDIRECT()
ましたが、名前マネージャー画面でエラーは生成されませんでしたが、検証を追加しようとすると、次のエラーメッセージが表示されました。
The Source currently evaluates to an error. Do you want to continue?
ここで何が問題なのかわかりません。両方のADDRESS()呼び出しの2番目のパラメーターは同じであるため、範囲アドレスは単一の列を参照する必要があります。探している動的リスト検証を設定するにはどうすればよいですか?
編集:これをデバッグすると、奇妙な動作が発生します。を使用してListColumnを選択しようとすると、実行時エラーが発生し続けますRange("ListColumn").Select
。メッセージは「オブジェクト'_Global'のメソッド'Range'が失敗しました。」です。
入力すると、期待値である=ListColumn
:が返されます。'DataSource'!$L$3:'DataSource'!$L$65
また、数式を入力する=COUNTA(ListColumn)
と「1」が返されますが、数式を入力する=COUNTA('DataSource'!$L$3:'DataSource'!$L$65)
と正しい値の「63」が返されます。 =COUNTA(INDIRECT(ListColumn))
また、「1」を返します。