美好的一天,
我正在尝试根据第一列的内容对二维数组进行排序。我找到了“QuickSortArray”的代码,这似乎是解决方案:
Sorting a multidimensionnal array in VBA
尽管我无法让它适用于我的示例。我的例子是:
Sub test()
Dim TestArray1(1 To 4, 0 To 1) As Variant
Dim TestArray2
TestArray1(1, 0) = 108
TestArray1(2, 0) = 109
TestArray1(3, 0) = 106
TestArray1(4, 0) = 110
TestArray1(1, 1) = 10
TestArray1(2, 1) = 5
TestArray1(3, 1) = 15
TestArray1(4, 1) = 2
TestArray2 = QuickSortArray(TestArray1, , , 2)
Debug.Print TestArray2(2, 1)
End Sub
我尝试根据第一列或第二列对数组进行排序。
错误是:
expecting function or variable.
你知道我的例子有什么问题吗?
最佳答案
QuickSortArray
是一个 Sub 而不是函数,它不能像这样分配给变量:
TestArray2 = QuickSortArray(TestArray1, , , 2)
为了使您的代码正常工作,您需要对其进行如下修改:
Sub test()
Dim TestArray1(1 To 4, 0 To 1) As Variant
Dim TestArray2
TestArray1(1, 0) = 108
TestArray1(2, 0) = 109
TestArray1(3, 0) = 106
TestArray1(4, 0) = 110
TestArray1(1, 1) = 10
TestArray1(2, 1) = 5
TestArray1(3, 1) = 15
TestArray1(4, 1) = 2
TestArray2 = TestArray1
Call QuickSortArray(TestArray2, , , 2)
Debug.Print TestArray2(2, 1)
End Sub
关于arrays - 在 Excel VBA 中对二维数组进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31944617/