2012-09-18 230 views
2

我試圖使用ListObject中的行中的值來驗證單元格(列表類型驗證)。當我在我的驗證代碼中使用名爲範圍的時,它起作用;但如果我替換命名範圍引用ListObject引用它會引發錯誤。如何使用Excel中的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]" 

...我得到一個錯誤。我也嘗試通過用戶界面來做到這一點,它不起作用。

你真的不能使用ListObject驗證單元嗎?

回答

4

好問題。我認爲一個兩步的過程會爲你工作:

  1. 創建在一個名爲範圍定義爲"=Table2[ROW2]"
  2. 點的數據驗證列表中的命名範圍。

這適用於Excel 2010中的數據驗證列表,通過插入和刪除表格行來縮小和增大。

我對名字「Table2 [ROW2]」有點困惑。「無論是在表/列表對象和數據驗證方面,列都會更有意義。

+0

這完全是**我需要的!謝謝! PS - 我修正了製作的變量來反映我的文章中的列而不是行。只是快速輸入我的想法。謝謝。 – thornomad

相關問題