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

标签 arrays excel vba sorting multidimensional-array

美好的一天,

我正在尝试根据第一列的内容对二维数组进行排序。我找到了“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/

相关文章:

excel - 在excel中锁定形状文本

excel - 自动化帮助,excel 或 SPSS,需要为每五个值计算中值

c - 我应该使用数组来存储多项选择a、b、c、d 的答案吗?

vb.net - Microsoft.Office.Interop.Excel VB.NET 如何禁用工作表中的选择锁定值

excel - 通过 VBA 在 Excel 中启用 COM 插件

excel - TextToColumns 用于带有时间的日期字符串

vba - MS Office SaveAs 类型 FileDialog 与 vb 中的过滤器

javascript - 两个数组索引依次放置时意味着什么?

计算 c 中哈希集中的簇

Python-在二进制文件中写入长串位