在Excel VBA中对二维数组进行sorting

美好的一天,

我正在尝试根据第一列的内容对2D数组进行sorting。 我发现这个代码“QuickSortArray”似乎是解决scheme:

sortingVBA中的multidimensional array

虽然我不能让它为我的例子工作。 我的例子是:

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 

我尝试根据第一列或第二列对数组进行sorting。

错误是:

期望function或variables。

你知道我的例子有什么问题吗?

QuickSortArray是一个Sub不是一个函数,它不能像这样分配给variables:

 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