Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Сортировка массива для Listbox - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Сортировка массива для Listbox (Макросы/Sub)
Сортировка массива для Listbox
Sashagor1982 Дата: Пятница, 28.07.2017, 22:10 | Сообщение № 1
Группа: Проверенные
Ранг: Обитатель
Сообщений: 287
Репутация: -6 ±
Замечаний: 0% ±

Excel 2007
Товарищи. В файле примере программа, которая с помощью массива заполняет Listbox. Проблема состоит в том, что Listbox надо заполнить по алфавиту. Сразу оговорюсь, что имеющиеся макросы сортировки массивов мне адаптировать не удалось. Спасибо за помощью
К сообщению приложен файл: 2283097.rar (46.4 Kb)
 
Ответить
СообщениеТоварищи. В файле примере программа, которая с помощью массива заполняет Listbox. Проблема состоит в том, что Listbox надо заполнить по алфавиту. Сразу оговорюсь, что имеющиеся макросы сортировки массивов мне адаптировать не удалось. Спасибо за помощью

Автор - Sashagor1982
Дата добавления - 28.07.2017 в 22:10
wild_pig Дата: Пятница, 28.07.2017, 23:57 | Сообщение № 2
Группа: Проверенные
Ранг: Обитатель
Сообщений: 516
Репутация: 97 ±
Замечаний: 0% ±

2003, 2013
Сортировка одномерного массива:
[vba]
Код
Function SortArray(ByVal a As Variant) As Variant
    Dim i&, j&
    Dim t
'----------------
    For i = LBound(a) To UBound(a)
        For j = LBound(a) To UBound(a) - 1
            If a(j) > a(j + 1) Then
                t = a(j)
                a(j) = a(j + 1)
                a(j + 1) = t
            End If
        Next
    Next
    SortArray = a
End Function
[/vba]
Код в инициализации формы:
[vba]
Код
Me.ListBox1.List = SortArray(y)
[/vba]


Сообщение отредактировал wild_pig - Суббота, 29.07.2017, 07:13
 
Ответить
СообщениеСортировка одномерного массива:
[vba]
Код
Function SortArray(ByVal a As Variant) As Variant
    Dim i&, j&
    Dim t
'----------------
    For i = LBound(a) To UBound(a)
        For j = LBound(a) To UBound(a) - 1
            If a(j) > a(j + 1) Then
                t = a(j)
                a(j) = a(j + 1)
                a(j + 1) = t
            End If
        Next
    Next
    SortArray = a
End Function
[/vba]
Код в инициализации формы:
[vba]
Код
Me.ListBox1.List = SortArray(y)
[/vba]

Автор - wild_pig
Дата добавления - 28.07.2017 в 23:57
Sashagor1982 Дата: Суббота, 29.07.2017, 15:54 | Сообщение № 3
Группа: Проверенные
Ранг: Обитатель
Сообщений: 287
Репутация: -6 ±
Замечаний: 0% ±

Excel 2007
Спасибо. Задача решена.
 
Ответить
СообщениеСпасибо. Задача решена.

Автор - Sashagor1982
Дата добавления - 29.07.2017 в 15:54
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Сортировка массива для Listbox (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!