使用用户定义函数进行数据验证

使用用户定义函数进行数据验证

我创建了一个命名范围,它是用户定义函数的结果。

假设我的愤怒被命名List并且有三个项目,如果我选择三个单元格并输入=List并按Ctrl+ Shift+ Enter,我就会在单元格中得到我的三个项目......所以一切看起来都很好。

如果我尝试使用该范围作为数据验证源(作为列表),我会得到“源当前评估为错误”。

这是 Excel 的限制吗?如果不是,那是什么问题?我该怎么办?

功能:

Public Function testarrayreturn() As Variant
    Dim Arr(2) As String
    Arr(0) = "a"
    Arr(1) = "b"
    Arr(2) = "c"

    testarrayreturn = Application.Transpose(Arr)
End Function

命名范围定义为testarrayreturn()

答案1

TL;DR 正如所描述的那样,这是不可能的(参见这篇文章)。

较长的答案:有一个解决方法。用户定义的函数必须返回一个Range非值数组。因此,解决方案是使用一次性工作表来“粘贴”临时数据。

由于避免临时数据正是我想要使用 UDF 的确切原因,所以这太糟糕了,但对其他人来说它可能有用。

相关内容