![](/img/trans.png)
[英]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.