繁体   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