[英]How can I set the range of the first listobject in an Excel worksheet to be a variable?
[英]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驗證單元格嗎?
好問題。 我認為一個兩步過程將為您工作:
"=Table2[ROW2]"
的命名范圍 這對我在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.