按function返回数组

我有函数,哪个返回数组:

Public Function BubbleSrt(ArrayIn, Ascending As Boolean) Dim SrtTemp As Variant Dim i As Long Dim j As Long If Ascending = True Then For i = LBound(ArrayIn) To UBound(ArrayIn) For j = i + 1 To UBound(ArrayIn) If ArrayIn(i) > ArrayIn(j) Then SrtTemp = ArrayIn(j) ArrayIn(j) = ArrayIn(i) ArrayIn(i) = SrtTemp End If Next j Next i Else For i = LBound(ArrayIn) To UBound(ArrayIn) For j = i + 1 To UBound(ArrayIn) If ArrayIn(i) < ArrayIn(j) Then SrtTemp = ArrayIn(j) ArrayIn(j) = ArrayIn(i) ArrayIn(i) = SrtTemp End If Next j Next i End If BubbleSrt = ArrayIn End Function 

我试图分配返回数组到另一个数组,使用此代码:

 sequence = BubbleSrt(unsorted, True) 

宣言:

 Dim unsorted(2) As Integer Dim sequence(2) As Integer 

编译错误 – 不能分配给数组。 解决scheme可能非常简单,但我不知道该怎么做。

改用这个:

 Dim unsorted(2) As Integer Dim sequence() As Integer 'initializing unsorted array sequence = BubbleSrt(unsorted, True) 

顺便说一句,你知道你的函数BubbleSrt修改你的unsorted数组吗? 例如,如果您在调用BubbleSrt后将值初始化为{3,1,2}BubbleSrt您的unsorted将变为“已sorting”: {1,2,3} 。 如果你不想要,在你的函数声明中joinByVal

 Public Function BubbleSrt(ByVal ArrayIn, Ascending As Boolean)