从函数返回对象数组 - VBA

时间:2017-08-17 12:09:28

标签: arrays vba excel-vba function excel

我需要"返回"我使用VBA创建的函数中的一个对象数组。当我尝试将函数设置为数组时,它会给出一条错误消息,说

  

对象是必需的。

我不习惯VBA,我无法解决这个问题。这是功能代码:

Function sortedList(listRange As Integer, tempList() As ship) As ship
   Dim temp As ship
   Set temp = Nothing

   For i = listRange - 10 To 1 Step -1

       For j = 2 To listRange - 10
            If tempList(j - 1).Arrival > tempList(j).Arrival Then
                Set temp = tempList(j - 1)
                Set tempList(j - 1) = tempList(j)
                Set tempList(j) = temp
            End If
        Next j
    Next i

    'return tempList - how?
    Set sortedList = tempList

End Function

Ship是"类"我创造的。 tempList是类ship中的对象数组,我需要从函数sortedList返回。

该功能有效,它只是我无法工作的返回部分。

感谢您的帮助。如果需要更多信息,请告诉我!

1 个答案:

答案 0 :(得分:5)

声明函数返回数组

Function sortedList(listRange As Integer, tempList() As ship) As ship()

然后在没有Set

的情况下分配结果
sortedList = tempList