2013-03-14 3 views
0

이 주제가 여러 번 열렸습니다.날짜순으로 다차원 배열 정렬

나는 모든 예를 살펴 보았지만, 나는 그저 작동시킬 수 없다!

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 

답변

0

매우 이상한 코드 : 여기

테스트 링크입니다 ..

모든 잘 한 배열을 기대 작품, 난 그냥 이유를 이해 해달라고. 이 시도 :

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 

최종 하위