0

我正在尝试使用命名列表在 Excel 中设置下拉菜单,但我想自己编写命名变量的条目。

因此,假设我将命名列表(称为 TestVar)定义为(使用名称管理器)

={"A","B"}

(或者用分号创建列),我不能用它来验证数据。所以如果我在数据验证下选择“列表”选项,然后写

=TestVar

作为源,我得到“源当前评估为错误”。信息。

我不明白为什么 TestVar 不是一个有效的列表,因为它既适用于 INDEX 函数,也适用于数组公式。

另外,我知道我可以写

A,B

作为设置我的数据验证时的源,这给了我想要的行为,但我认为将它定义为命名列表更有意义,以防需要在某个点附加到列表中未来,并且该列表在文档中被多次引用。

编辑:

忘了提我使用的是 Excel 2013。

4

1 回答 1

0

如果您录制一个宏,您会看到该列表只是由逗号分隔的一串值。这将做你想要的:

Sub Macro1()
Dim ValidationFormula As String

ValidationFormula = "1,2"
With Selection.Validation
    .Delete
    .Add Type:=xlValidateList, Formula1:=ValidationFormula
End With
End Sub

编辑:

要将数据验证的源设置为 Excel 名称,该名称需要指向一个命名范围。我不知道有一种方法可以让它只引用一个设置为"1,2or的名称=1,2

下面我定义了一个命名范围 ValidationList,它引用C2:C5. 然后在 A2 中,我打开了“数据验证”对话框并指向该命名范围:

在此处输入图像描述

请注意,如果您这样做,您会希望它是一个动态的命名范围。另请参阅此Chandoo 帖子

于 2013-10-12T15:15:48.857 回答