按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)