我有一列数据,随着时间的推移,它会添加更多的值。我想将此列的值用于另一个工作表上的列表验证,以便下拉选项反映该列的当前内容。我尝试ListColumn
使用以下公式创建一个命名范围:
=ADDRESS(3,12,1,1,"DataSource")&":"&ADDRESS(COUNTA('DataSource'!$L:$L),12,1,1,"DataSource")
当我尝试为单元格添加验证时,选择允许:“列表”并=ListColumn
在公式框中输入,我收到以下错误消息:
The list source must be a delimited list, or a reference to a single row or column.
我尝试将整个公式包装在一个INDIRECT()
中,虽然这没有在名称管理器屏幕上生成错误,但当我尝试添加验证时,我收到了以下错误消息:
The Source currently evaluates to an error. Do you want to continue?
我不确定这里有什么问题。两个 ADDRESS() 调用的第二个参数是相同的,因此范围地址应该引用单个列。如何设置我正在寻找的动态列表验证?
编辑:调试这会产生一些奇怪的行为。当我尝试使用 选择 ListColumn 时,我不断收到运行时错误Range("ListColumn").Select
。消息是“对象 '_Global' 的方法 'Range' 失败。”
输入=ListColumn
返回:'DataSource'!$L$3:'DataSource'!$L$65
,这是预期值。
此外,当我输入公式时=COUNTA(ListColumn)
,它返回“1”,但当我输入公式时=COUNTA('DataSource'!$L$3:'DataSource'!$L$65)
,它返回正确的值“63”。 =COUNTA(INDIRECT(ListColumn))
也返回“1”。