无法将溢出范围传递给 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<>""))
无论是什么原因导致了最初的错误,这些额外的步骤似乎都可以避免它。
我在将 Spill 数组传递给 VBA 时遇到问题。该范围由名称“ListCurJobs”和等式
定义=UNIQUE(FILTER(CtrlSht!$B:$B,CtrlSht!$B:$B<>""))
正在使用“=ListCurJobs”测试工作表上的命名范围returns 溢出范围符合预期。
我正在尝试使用
将其传递给VBASub 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<>""))
无论是什么原因导致了最初的错误,这些额外的步骤似乎都可以避免它。