繁体   English   中英

在 Excel VBA 中对二维数组进行排序

[英]Sort 2D array in Excel VBA

再会,

我正在尝试根据第一列的内容对二维数组进行排序。 我找到了“QuickSortArray”的这个代码,这似乎是解决方案:

在 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

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

错误是:

期望函数或变量。

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM