自定义用户function(UDF)和dynamic范围

我有一个自定义用户函数(UDF)返回一个数组。 我在大范围的单元格中使用Array Array。
返回数组的长度取决于函数参数。 除了一件事以外,这个工作很好:当返回数组的长度小于为数组公式定义的范围时,“超出范围”条目全部设置为#N/A

有没有办法获得自定义用户函数内的数组公式范围(所以,如果需要,我可以准备一个更大的数组返回),或者返回某种types的迭代器(而不是数组),这是不是大小有限,如果超出范围,将返回""

这是一个非常愚蠢的例子…… UDF返回列前7个素数:

 Public Function Primes() ' ' Array UDF to return the first 7 primes ' Dim rN As Long, ary(1 To 7) As Long Dim tdim As Long, i As Long Dim wf As WorksheetFunction Set wf = Application.WorksheetFunction rN = Application.Caller.Rows.Count tdim = wf.Max(rN, 7) ReDim bry(1 To tdim, 1 To 1) ary(1) = 1 ary(2) = 3 ary(3) = 5 ary(4) = 7 ary(5) = 11 ary(6) = 13 ary(7) = 17 For i = 1 To 7 bry(i, 1) = ary(i) Next i If tdim > 7 Then For i = 8 To tdim bry(i, 1) = "" Next i End If Primes = bry End Function 

UDF检测要填充多less个单元格,如果该值超过7 ,则余额填充空白。