このトピックは以前に何度も開かれたことを知っています。
私はすべての例を見ましたが、それを機能させることはできません!
私は 3 つの次元を持っています。日付は最初の次元にあります。
1つの配列を期待してすべてが正常に機能しますが、その理由がわかりません..
ここにテストリンクがあります:ここをクリック
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