Excel VBA排序数组函数
我已经编写了下面显示的函数。当我在Sub中使用它时,它会工作。这是我第一次尝试编写函数。我知道这是一个noob问题,但是我似乎无法运行该函数。可能是因为没有正确调用函数,或者没有正确定义函数头中的变量 谁能给我指一下正确的方向吗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
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中有效。我以前从未编写过函数,因此我不确定这是否是将代码作为函数实现的正确方法。本质上,函数中的代码与子函数中的代码是相同的,所以我不确定我哪里出错了。你可以把它变成子函数,因为你的函数没有返回任何东西。。。