Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/27.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
Excel VBA排序数组函数_Vba_Excel - Fatal编程技术网

Excel VBA排序数组函数

Excel VBA排序数组函数,vba,excel,Vba,Excel,我已经编写了下面显示的函数。当我在Sub中使用它时,它会工作。这是我第一次尝试编写函数。我知道这是一个noob问题,但是我似乎无法运行该函数。可能是因为没有正确调用函数,或者没有正确定义函数头中的变量 谁能给我指一下正确的方向吗 Function SortArray(ArrayToSort As String) Dim x As Long, y As Long Dim TempTxt1 As String Dim TempTxt2 As String For x

我已经编写了下面显示的函数。当我在Sub中使用它时,它会工作。这是我第一次尝试编写函数。我知道这是一个noob问题,但是我似乎无法运行该函数。可能是因为没有正确调用函数,或者没有正确定义函数头中的变量

谁能给我指一下正确的方向吗

Function SortArray(ArrayToSort As String)
    Dim x As Long, y As Long
    Dim TempTxt1 As String
    Dim TempTxt2 As String

    For x = LBound(ArrayToSort) To UBound(ArrayToSort)
        For y = x To UBound(ArrayToSort)
            If UCase(ArrayToSort(y)) < UCase(ArrayToSort(x)) Then
                TempTxt1 = ArrayToSort(x)
                TempTxt2 = ArrayToSort(y)
                ArrayToSort(x) = TempTxt2
                ArrayToSort(y) = TempTxt1
            End If
        Next y
    Next x
End Function


Sub CreateUniquesList()
    Dim References() As String
    ...
    SortArray (References)
    ...
End Sub
函数SortArray(数组排序为字符串)
尺寸x和长度一样,y和长度一样
将Xt1设置为字符串
将Xt2设置为字符串
对于x=LBound(ArrayToSort)到UBound(ArrayToSort)
对于y=x到UBound(ArrayToSort)
如果UCase(阵列排序(y))
添加括号以确保参数是数组

Function SortArray(ArrayToSort() As String)
    'your code
End Function

Sub CreateUniquesList()
    Dim References() As String
    '...
    SortArray References 'lose the parentheses
    '...
End Sub

你想用代码做什么?它没有做什么?看起来您在同一个数组上进行比较,当一个数组较大时,将其切换。本质上是升序?该函数应该按字母顺序对数组进行排序。正如我上面所说的,这在Sub中有效。我以前从未编写过函数,因此我不确定这是否是将代码作为函数实现的正确方法。本质上,函数中的代码与子函数中的代码是相同的,所以我不确定我哪里出错了。你可以把它变成子函数,因为你的函数没有返回任何东西。。。