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

Вход

Регистрация

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

 

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

Регистрация · Логин: · Пароль: · · Забыли пароль?
Страница 1 из 11
Модератор форума: _Boroda_, Pelena, Manyasha, SLAVICK 
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Сортировка массива для Listbox (Макросы/Sub)
Сортировка массива для Listbox
Sashagor1982 Дата: Пятница, 28.07.2017, 22:10 | Сообщение № 1
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 179
Репутация: 12 ±
Замечаний: 20% ±

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

Автор - Sashagor1982
Дата добавления - 28.07.2017 в 22:10
wild_pig Дата: Пятница, 28.07.2017, 23:57 | Сообщение № 2
Группа: Проверенные
Ранг: Обитатель
Сообщений: 490
Репутация: 91 ±
Замечаний: 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
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 179
Репутация: 12 ±
Замечаний: 20% ±

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

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

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