【发布时间】:2019-01-11 22:17:13
【问题描述】:
我有三个数组,DueDateArr、MilestoneDollarsArr、MilestoneNameArr。 我希望按时间顺序对 DueDateArr 进行排序,并使用相同的排序过程也以相同的顺序对其他数组进行排序。我将How can I sort dates in an array in vba? 与其他数组排序部分一起使用,但这似乎无法正常工作。在输出中一切正常,除了第一个条目是错误的日期。
或者,如果可能的话,我想使用它们在 java 中拥有的链表之类的东西,它是具有不同变量类型的可排序多维数组。
Dim TotalCountMinusOneForArrays as Integer
Dim DueDateArr() As Date
Dim MilestoneDollarsArr() As Double
Dim MilestoneNameArr() As String
Dim DueDateValue As Date
Dim MilestoneNameValue As String
Dim DueDateInfo As Date
Dim MilestoneDollarsInfo As Double
Dim MilestoneNameInfo As String
Dim i As Long, j As Long
i = 0
j = 0
For j = 2 To TotalCountMinusOneForArrays
DueDateInfo = DueDateArr(j)
MilestoneDollarsInfo = MilestoneDollarsArr(j)
MilestoneNameInfo = MilestoneNameArr(j)
For i = j - 1 To 1 Step -1
If (DueDateArr(i) <= DueDateInfo) Then GoTo Sort
DueDateArr(i + 1) = DueDateArr(i)
MilestoneDollarsArr(i + 1) = MilestoneDollarsArr(i)
MilestoneNameArr(i + 1) = MilestoneNameArr(i)
Next i
i = 0
Sort: DueDateArr(i + 1) = DueDateInfo
MilestoneDollarsArr(i + 1) = MilestoneDollarsInfo
MilestoneNameArr(i + 1) = MilestoneNameInfo
Next j
【问题讨论】: