2

ListObject にある行の値を使用して、セルを検証しようとしています (リスト型の検証)。検証コードで名前付き範囲を使用すると、機能します。しかし、名前付き範囲参照をListObject参照に置き換えると、エラーがスローされます。

ListObject を使用してセルを検証できますか?

これは、名前付き範囲を使用して機能する私がやっていることです:

With Range("Table1[COL1]").Validation
    .Delete
    .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:=xlBetween, _
    Formula1:="=DEPT_NAMES" ' where DEPT_NAMES is a manually created named range
    '[...] more stuff goes here
End With

しかし、値を置き換えて、次のFormula1:=ような有効なリスト オブジェクトを指すようにすると、次のようになります。

Formula1:="=Table2[COL2]"

... エラーが発生します。また、UI からこれを実行しようとしましたが、機能しません。

ListObject を使用してセルを検証できませんか?

4

2 に答える 2

4

良い質問。私は2段階のプロセスがあなたのために働くと思います:

  1. 次のように定義された名前付き範囲を作成します"=Table2[ROW2]"
  2. その名前付き範囲にデータ検証リストを向けます。

これはExcel2010で機能します。データ検証リストは、テーブル行の挿入と削除に伴って縮小および拡大します。

「Table2[ROW2]」という名前で少し混乱しています。列は、テーブル/リストオブジェクトとデータ検証の両方の観点からより意味があります。

于 2012-09-18T19:44:01.767 に答える
1

別の場所で見つかりました ( https://blackatlascreative.com/blog/create-an-excel-data-validation-list-using-a-table/ ):

Formula1:="=INDIRECT(""Table2[COL2]"")"

の追加がINDIRECT主な違いです。

于 2017-11-03T11:25:15.407 に答える