Excel 使用此命名范围进行列表验证有什么问题?

Excel 使用此命名范围进行列表验证有什么问题?,excel,validation,worksheet-function,Excel,Validation,Worksheet Function,我有一列数据,随着时间的推移,这些数据将添加更多的值。我想在另一个工作表上使用此列的值进行列表验证,以便下拉选项反映列的当前内容。我尝试使用以下公式创建命名范围列表列: =ADDRESS(3,12,1,1,"DataSource")&":"&ADDRESS(COUNTA('DataSource'!$L:$L),12,1,1,"DataSource") 当我尝试为单元格添加验证时,选择Allow:'List'并在公式框中输入=ListColumn,我会收到以下错误消息: The

我有一列数据,随着时间的推移,这些数据将添加更多的值。我想在另一个工作表上使用此列的值进行列表验证,以便下拉选项反映列的当前内容。我尝试使用以下公式创建命名范围列表列:

=ADDRESS(3,12,1,1,"DataSource")&":"&ADDRESS(COUNTA('DataSource'!$L:$L),12,1,1,"DataSource") 
当我尝试为单元格添加验证时,选择Allow:'List'并在公式框中输入=ListColumn,我会收到以下错误消息:

The list source must be a delimited list, or a reference to a single row or column.
The Source currently evaluates to an error.  Do you want to continue?
我尝试用间接方式包装整个公式,虽然这不会在名称管理器屏幕上产生错误,但当我尝试添加验证时,我收到以下错误消息:

The list source must be a delimited list, or a reference to a single row or column.
The Source currently evaluates to an error.  Do you want to continue?
我不确定这里出了什么问题。两个地址调用的第二个参数相同,因此范围地址应该引用单个列。如何设置我正在寻找的动态列表验证

编辑:调试这会产生一些奇怪的行为。当我尝试使用RangeListColumn.select选择ListColumn时,我一直遇到运行时错误。消息是对象“\u Global”的方法“Range”失败

输入=ListColumn返回:“数据源”$L$3:“数据源”$L$65,这是预期值


另外,当我输入formula=COUNTAListColumn时,它返回1,但当我输入formula=COUNTA‘DataSource’时$L$3:“数据源”$L$65它返回正确的值63=COUNTAINDIRECTListColumn也返回1。

我认为问题可能是第二个地址块中的包含数据源作为文本表名称。在执行上述步骤时,我会得到与您完全相同的行为,但它似乎适用于以下情况:

=INDIRECT(ADDRESS(3,12,1,1,"DataSource")&":"&ADDRESS(COUNTA(DataSource!$L:$L),12,1,1))
然后,您可以完全按照上面所做的操作,并在下拉列表中使用它。我最好的假设是,既然您已经在地址的第一部分定义了工作表,那么您不需要在第二部分提供它,如果您这样做,将会导致错误。如果您从程序的角度考虑,我认为这是有意义的,因为在多个表中引用范围是困难的/不可能的,因此语法可能不允许在冒号后面指定第二个表,即使它是相同的。这只是猜测,但可能是错误的,因此希望解决方案能够奏效:


愚蠢的奎斯顿。。。当您选择ListColumn时,它是单行还是列?@DanielCook.select不起作用,请参见上面的“我的编辑”。