簡體   English   中英

如何使用Excel中ListObject的范圍來驗證單元格?

[英]How do I validate a cell using a range from a ListObject in Excel?

我正在嘗試使用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驗證單元格嗎?

好問題。 我認為一個兩步過程將為您工作:

  1. 創建一個定義為"=Table2[ROW2]"的命名范圍
  2. 將數據驗證列表指向該命名范圍。

這對我在Excel 2010中有效。數據驗證列表隨着表行的插入和刪除而縮小和增長。

我對名稱“ Table2 [ROW2]”有些困惑。 就表/列表對象和數據驗證而言,列將更有意義。

在其他地方找到( https://blackatlascreative.com/blog/create-an-excel-data-validation-list-using-a-table/ ):

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

INDIRECT的添加是關鍵區別。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM