powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / ListBox-Как организовать загрузку нового RowSource, при достижении максим ListIndex
10 сообщений из 10, страница 1 из 1
ListBox-Как организовать загрузку нового RowSource, при достижении максим ListIndex
    #36270648
Фотография Dan-K
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть классический файл от Уокенбаха, где есть возможность менять содержимое ListBox по событию OptionButton...

Код: plaintext
1.
2.
Private Sub obMonths_Click()
    ListBox1.RowSource = "Лист1!Месяцы"
End Sub
...
Рейтинг: 0 / 0
ListBox-Как организовать загрузку нового RowSource, при достижении максим ListIndex
    #36270665
Deggasad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вопрос уже был? или я что-то пропустил?
...
Рейтинг: 0 / 0
ListBox-Как организовать загрузку нового RowSource, при достижении максим ListIndex
    #36270680
Фотография Dan-K
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Встала задача: когда выделение в ListBox доходит до конца - стереть содержимое ListBox и загрузить следующий диапазон.

Попробовал сделать вариант с использованием события

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
Private Sub ListBox1_Click()

If UserForm1.ListBox1.ListIndex =  14  Then
UserForm1.ListBox1.RowSource = ""

UserForm1.ListBox1.RowSource = "Лист1!A16:D30"

ThisWorkbook.Sheets("Лист1").Range("I1").Value = "ПЕРЕХОД НА ВТОРОЙ ДИАПАЗОН"
Else
End If

End Sub

В итоге

Код: plaintext
UserForm1.ListBox1.RowSource = "Лист1!A16:D30"

- не работает

А почему?
...
Рейтинг: 0 / 0
ListBox-Как организовать загрузку нового RowSource, при достижении максим ListIndex
    #36271392
Фотография Dan-K
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Попробовал загружать через массив.
Но ... воз и ныне там...
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
Private Sub СТЕРЕТЬ_ЛИСТБОКС()
With ListBox1
.Clear
End With
UserForm1.ListBox1.ListIndex = - 1 
End Sub

Private Sub ЗАПОЛНИТЬ_ЛИСТБОКС()
ZZZ = ThisWorkbook.Sheets("Лист1").Range("F1").Value
Dim dataS1( 1  To  15 ,  1  To  4 )
For i =  1  To  15 
For j =  1  To  4 
dataS1(i, j) = Worksheets("Лист1").Cells(i + ZZZ, j)
Next j
Next i
ListBox1.ColumnCount =  4 
With ListBox1
.List = dataS1
End With
UserForm1.ListBox1.ListIndex =  1 
End Sub

Private Sub ListBox1_Click()
' ЕСЛИ опустить ВЫДЕЛЕНИЕ В ListBox в самый низ, то должно запуститься
' заполнение ListBox1 через массив
If UserForm1.ListBox1.ListIndex =  14  Then

'ЭТА ПРОЦЕДУРА ЗАПУСКАЕТСЯ (ЛИСТБОКС ОЧИЩАЕТСЯ)

СТЕРЕТЬ_ЛИСТБОКС

'А ЭТА НЕ ЗАПУСКАЕТСЯ...

ЗАПОЛНИТЬ_ЛИСТБОКС

ThisWorkbook.Sheets("Лист1").Range("F1").Value = ThisWorkbook.Sheets("Лист1").Range("F1").Value +  14 
Else
End If
End Sub
...
Рейтинг: 0 / 0
ListBox-Как организовать загрузку нового RowSource, при достижении максим ListIndex
    #36273344
Фотография Dan-K
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Знатоки, откликнитесь... Может и нельзя это вовсе делать, а я уже 4 дня сижу...
...
Рейтинг: 0 / 0
ListBox-Как организовать загрузку нового RowSource, при достижении максим ListIndex
    #36274086
Deggasad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Значения меняются, но они не отображаются визуально (можете проверить). по быстрому не разобрался почему.
...
Рейтинг: 0 / 0
ListBox-Как организовать загрузку нового RowSource, при достижении максим ListIndex
    #36274144
MaximuS_G
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dan-K
Решил разобраться в Вашем вопросе, и вот что получилось...
У меня не работает даже вот это:
Код: plaintext
UserForm1.ListBox1.RowSource = ""
Видимо, при заполнении списка через RowSource данные заполняются как-то отличительно от метода AddItem и требуют особого метода работы... Времени разбираться в чем этом метод заключается пока нет, но позже попробую разобратся. А пока, как вариант, можете использовать альтернативу:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
Private Sub ListBox1_Click()
Dim i As Byte

If UserForm1.ListBox1.ListIndex =  4  Then
    For i =  1  To ListBox1.ListCount
    ListBox1.RemoveItem ListBox1.ListCount -  1 
    Next i
'здесь вместо i*10 Вы можете брать элемент из массива, в который предварительно занесены значения с нужного диапазона
    For i =  1  To  5 
        ListBox1.AddItem i *  10 
    Next i
Else
End If

End Sub

Private Sub UserForm_Initialize()
Dim i As Byte
'здесь вместо i Вы можете брать элемент из массива, в который предварительно занесены значения с нужного диапазона
For i =  1  To  5 
    ListBox1.AddItem i
Next i

End Sub
Хочу заметить, что у меня при заполнении списка через rowsource у меня даже не срабатывает метод removeitem, пишет "неопределенная ошибка"... Интересно...
...
Рейтинг: 0 / 0
ListBox-Как организовать загрузку нового RowSource, при достижении максим ListIndex
    #36284241
Фотография Dan-K
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Знатоки , только сильно не пинайте:
А если событие объекта User Form, вернее ListBox ,будет запускать код из модуля класса?
Может это "более сильно действующее средство...
...
Рейтинг: 0 / 0
ListBox-Как организовать загрузку нового RowSource, при достижении максим ListIndex
    #36290619
Фотография Dan-K
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
ListBox-Как организовать загрузку нового RowSource, при достижении максим ListIndex
    #36290912
Фотография PA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сделай заполнение не через ListBox1.List = dataS1 , а в цикле через

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
With ListBox1
   .AddItem col1
   .List(row,  1 ) = col2
   .List(row,  2 ) = col3
   .List(row,  3 ) = col4
   .List(row,  4 ) = col5
End With
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / ListBox-Как организовать загрузку нового RowSource, при достижении максим ListIndex
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]