按日期对多维数组排序
问题描述:
我知道这个话题曾经打开过很多次。按日期对多维数组排序
我看了所有的例子,但我不能让它工作!
我有3个维度,日期是在第一维度。
一切工作正常指望一个数组,我只是不明白为什么..
下面是测试环节:click here
Sub DataSorter(arrArray)
Dim row, j, StartingKeyValue, StartingOtherValue, _
NewStartingKey, NewStartingOther, _
swap_pos
For row = 0 To UBound(arrArray)-1
StartingKeyValue = arrArray(row, 0)
StartingOtherValue = arrArray(row, 0)
StartingVenue = arrArray(row, 1)
StartingVenueOther = arrArray(row, 1)
swap_pos = row
For j = row + 1 to UBound(arrArray)
If DateDiff("s", arrArray(j, 0), NewStartingKey) < 0 Then
swap_pos = j
NewStartingKey = arrArray(j, 0)
NewStartingOther = arrArray(j, 0)
NewStartingVenue = arrArray(j, 1)
NewStartingVenueOther = arrArray(j, 1)
NewStartingCountry = arrArray(j, 2)
NewStartingCountryOther = arrArray(j, 2)
End If
Next
If swap_pos <> row Then
arrArray (swap_pos, 0) = StartingKeyValue
arrArray (swap_pos, 0) = StartingOtherValue
arrArray (row, 0) = NewStartingKey
arrArray (row, 0) = NewStartingOther
arrArray (swap_pos, 1) = StartingVenue
arrArray (swap_pos, 1) = StartingVenueOther
arrArray (row, 1) = NewStartingVenue
arrArray (row, 1) = NewStartingVenueOther
arrArray (swap_pos, 2) = StartingCountry
arrArray (swap_pos, 2) = StartingCountryOther
arrArray (row, 2) = NewStartingCountry
arrArray (row, 2) = NewStartingCountryOther
End If
Next
End Sub
答
很奇怪的代码。试试这个:
Sub DataSorter(arrArray)
Dim row, i, tmp
For row = 0 To UBound(arrArray) - 1
For j = row + 1 to UBound(arrArray)
If DateDiff("s", arrArray(j, 0), arrArray(row, 0)) < 0 Then
For i = 0 To 2
tmp = arrArray(j, i)
arrArray(j, i) = arrArray(row, i)
arrArray(row, i) = tmp
Next
End If
Next
Next
末次