Сортировка работает некорректно - VB

Узнай цену своей работы

Формулировка задачи:

Доброго времени суток! Есть сортировка. Она работает идеально только в случае, когда один столбец (в массиве кроме числе больше ничего нет). У меня данные в таком виде: массив dat_ls 01.01.2028 01.01.2017 123 01.02.2014 05.07.2014 456 01.05.2026 07.01.2019 000 Надо отсортировать данные по 1-му или 2-му столбцу так, чтобы данные сохранились (как в EXCEL). А данные сохраняются только в том столбце, который сортируется. Помогите, пожалуйста, как мне видоизменить код, чтобы данные совместно сортировались?

Решение задачи: «Сортировка работает некорректно»

textual
Листинг программы
Sub Sort_(Arr() As String, nCol As Integer)
 
    s% = LBound(Arr, 1)
    e% = UBound(Arr, 1)
    
    For i% = s% To e% - 1
        For j% = i% + 1 To e%
            If CDate(Arr(i%, nCol%)) > CDate(Arr(j%, nCol%)) Then
               For k% = LBound(Arr, 2) To UBound(Arr, 2)
                   tmp$ = Arr(i%, k%)
                   Arr(i%, k%) = Arr(j%, k%)
                   Arr(j%, k%) = tmp$
               Next k%
            End If
        Next j%
    Next i%
 
End Sub
 
Sub Test()
 
Dim X(1 To 3, 1 To 3) As String
 
    X(1, 1) = "01.01.2028"
    X(1, 2) = "01.01.2017"
    X(1, 3) = "123"
    X(2, 1) = "01.02.2014"
    X(2, 2) = "05.07.2014"
    X(2, 3) = "456"
    X(3, 1) = "01.05.2026"
    X(3, 2) = "07.01.2019"
    X(3, 3) = "000"
 
    Debug.Print "Сортировка по 1-й колонке"
    Debug.Print
 
    Sort_ X, 1
 
    For i% = 1 To 3
        For j% = 1 To 3
            Debug.Print X(i%, j%); " ";
        Next j%
        Debug.Print
    Next i%
 
    Debug.Print
    Debug.Print "Сортировка по 2-й колонке"
    Debug.Print
    
    Sort_ X, 2
 
    For i% = 1 To 3
        For j% = 1 To 3
            Debug.Print X(i%, j%); " ";
        Next j%
        Debug.Print
    Next i%
 
    Debug.Print
    
End Sub

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

14   голосов , оценка 3.5 из 5