Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arrays 按函数返回数组_Arrays_Vba_Excel - Fatal编程技术网

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()作为整数
工作,但应将其放置在模块的最顶部: