无法将溢出范围传递给 VBA - 仅出现应用程序定义或对象定义的错误

Trouble passing spilled range to VBA - Only getting Application-defined or object-defined error

我在将 Spill 数组传递给 VBA 时遇到问题。该范围由名称“ListCurJobs”和等式

定义

=UNIQUE(FILTER(CtrlSht!$B:$B,CtrlSht!$B:$B<>""))

正在使用“=ListCurJobs”测试工作表上的命名范围returns 溢出范围符合预期。

我正在尝试使用

将其传递给VBA
Sub ListJobs
Dim listCurJobs() As Variant

n = Worksheets("CtrlSht").Range("listCurJobs").Rows.Count

ReDim listCurJobs(n, 1)

listCurJobs = Worksheets("CtrlSht").Range("listCurJobs")

End Sub

这适用于标准数组,但对于溢出数组我得到错误:应用程序定义或对象定义的错误

编辑:跟进 - 我设法通过更改命名范围 listCurJobs 以使用偏移函数来解决此问题

=OFFSET(CtrlSht!$E,0,0,CtrlSht!$D)

其中 CtrlSht!$D$1 通过

计算 E 中的所有项目

=COUNTA(E1#)

并且 E1 具有我试图在命名范围内使用的溢出功能,即

=UNIQUE(FILTER(CtrlSht!$B:$B,CtrlSht!$B:$B<>""))

无论是什么原因导致了最初的错误,这些额外的步骤似乎都可以避免它。

我设法通过更改命名范围 listCurJobs 以使用 Offset 函数来解决此问题:

=OFFSET(CtrlSht!$E,0,0,CtrlSht!$D)

其中 CtrlSht!$D 通过以下方式计算 E 中的所有项目:

=COUNTA(E1#)

并且 E1 具有我试图在命名范围内使用的 spill 函数;即,

=UNIQUE(FILTER(CtrlSht!$B:$B,CtrlSht!$B:$B<>""))

无论是什么原因导致了最初的错误,这些额外的步骤似乎都可以避免它。