Arrays 按函数返回数组
我有一个函数,返回数组:Arrays 按函数返回数组,arrays,vba,excel,Arrays,Vba,Excel,我有一个函数,返回数组: 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)
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
声明:
Dim unsorted(2) As Integer
Dim sequence(2) As Integer
Public Function BubbleSrt(ByVal ArrayIn, Ascending As Boolean)
编译错误-无法分配给数组。解决方案可能非常简单,但我不知道该怎么办。使用此解决方案:
Dim unsorted(2) As Integer
Dim sequence() As Integer
'initializing unsorted array
sequence = BubbleSrt(unsorted, True)
顺便问一下,你知道你的函数BubbleSrt
修改你的未排序的数组吗?例如,如果在调用BubbleSrt
后使用值{3,1,2}
初始化它,则未排序的
将变为“已排序”:{1,2,3}
。如果不需要,请在函数声明中添加ByVal
:
Dim unsorted(2) As Integer
Dim sequence(2) As Integer
Public Function BubbleSrt(ByVal ArrayIn, Ascending As Boolean)
是否有可能将序列初始化为全局变量?不允许将Public sequence()作为整数。Public sequence()作为整数
工作,但应将其放置在模块的最顶部: