Excel VBA排序数组函数

时间:2017-05-19 19:31:55

标签: excel vba excel-vba

我写了下面显示的功能。当我在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

1 个答案:

答案 0 :(得分:3)

添加括号以确保参数是数组

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

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