如何返回自定义对象的数组?

我想写一个函数,将返回一个自定义对象的数组。 这是我到目前为止:

Option Explicit Public Type Node mValue As Integer mTo() As Integer End Type Function FillData() Dim a As Node Dim b As Node Dim c As Node Dim nody() As Node a.mValue = 1 ReDim a.mTo(0 To 1) a.mTo(0) = 2 b.mValue = 2 ReDim b.mTo(0 To 1) b.mTo(0) = 3 c.mValue = 3 ReDim c.mTo(0 To 1) c.mTo(0) = 1 ReDim nody(0 To 2) nody(0) = a nody(1) = b nody(2) = c FillData = nody End Function Sub test() Dim data() As Node data = FillData() End Sub 

问题是,当我尝试运行它(testing子),我得到一个编译错误在FillData = nody说:

只有在公共对象模块中定义的用户定义的types可以被强制转换为变体或从变体转换或传递给后期绑定的函数

我的整个代码是在一个公共模块。 如何“强制”一个函数返回一个自定义对象的数组?

设置函数的返回值。

 Option Explicit Public Type Node mValue As Integer mTo() As Integer End Type Function FillData() As Node() Dim a As Node Dim b As Node Dim c As Node Dim nody() As Node a.mValue = 1 ReDim a.mTo(0 To 1) a.mTo(0) = 2 b.mValue = 2 ReDim b.mTo(0 To 1) b.mTo(0) = 3 c.mValue = 3 ReDim c.mTo(0 To 1) c.mTo(0) = 1 ReDim nody(0 To 2) nody(0) = a nody(1) = b nody(2) = c FillData = nody End Function Sub test() Dim data() As Node data = FillData() End Sub