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

Вход

Регистрация

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

 

= Мир MS Excel/Заполнить ListBox с двух разных листов - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Заполнить ListBox с двух разных листов (Макросы/Sub)
Заполнить ListBox с двух разных листов
Dмитрий Дата: Четверг, 03.04.2014, 12:28 | Сообщение № 1
Группа: Пользователи
Ранг: Участник
Сообщений: 91
Репутация: 9 ±
Замечаний: 40% ±

Excel 2010
Добрый День. Как заполнить ListBox с двух разных листов по условию. Я делаю так:
[vba]
Код

Sheets("Лист2").Activate
lr = Cells(Rows.Count, 1).End(xlUp).Row  'находим номер строки
Sheets("Лист1").Activate
lr2 = Cells(Rows.Count, 1).End(xlUp).Row  'находим номер строки    
Sheets("Лист2").Activate

ListBox1.Clear
'заполняем ListBox1
j = 0
For i = lr To 3 Step -1 'заполняем  снизу до три
    ListBox1.AddItem i
    ListBox1.List(j, 1) = Cells(i, 2)
    ListBox1.List(j, 2) = Cells(i, 4)
    ListBox1.List(j, 4) = Cells(i, 19)    
    Sheets("Лист1").Activate
    For A = lr2 To 3 Step -1 'снизу до три
    If Cells(A, 1).Value = ListBox1.List(j, 4)  Then
    ListBox1.List(j, 5) = Cells(A, 2)
    End If
    Next A
    Sheets("Лист2").Activate
     j = j + 1
Next i
[/vba]
пишет ListBox1.List(j, 5)=Null
Смущает цикл в цикле, но раньше я что-то подобное у меня работало, правда данные были на одном листе


Сообщение отредактировал Dмитрий - Четверг, 03.04.2014, 12:29
 
Ответить
СообщениеДобрый День. Как заполнить ListBox с двух разных листов по условию. Я делаю так:
[vba]
Код

Sheets("Лист2").Activate
lr = Cells(Rows.Count, 1).End(xlUp).Row  'находим номер строки
Sheets("Лист1").Activate
lr2 = Cells(Rows.Count, 1).End(xlUp).Row  'находим номер строки    
Sheets("Лист2").Activate

ListBox1.Clear
'заполняем ListBox1
j = 0
For i = lr To 3 Step -1 'заполняем  снизу до три
    ListBox1.AddItem i
    ListBox1.List(j, 1) = Cells(i, 2)
    ListBox1.List(j, 2) = Cells(i, 4)
    ListBox1.List(j, 4) = Cells(i, 19)    
    Sheets("Лист1").Activate
    For A = lr2 To 3 Step -1 'снизу до три
    If Cells(A, 1).Value = ListBox1.List(j, 4)  Then
    ListBox1.List(j, 5) = Cells(A, 2)
    End If
    Next A
    Sheets("Лист2").Activate
     j = j + 1
Next i
[/vba]
пишет ListBox1.List(j, 5)=Null
Смущает цикл в цикле, но раньше я что-то подобное у меня работало, правда данные были на одном листе

Автор - Dмитрий
Дата добавления - 03.04.2014 в 12:28
Dмитрий Дата: Четверг, 03.04.2014, 14:38 | Сообщение № 2
Группа: Пользователи
Ранг: Участник
Сообщений: 91
Репутация: 9 ±
Замечаний: 40% ±

Excel 2010
Вот файл. Что-там не то, конечно, но так, я думаю, будет понятнее
К сообщению приложен файл: 8788211.xlsb (19.2 Kb)
 
Ответить
СообщениеВот файл. Что-там не то, конечно, но так, я думаю, будет понятнее

Автор - Dмитрий
Дата добавления - 03.04.2014 в 14:38
Wasilich Дата: Четверг, 03.04.2014, 16:44 | Сообщение № 3
Группа: Друзья
Ранг: Старожил
Сообщений: 1232
Репутация: 326 ±
Замечаний: 0% ±

2003
Так?
К сообщению приложен файл: 9373980.xls (50.0 Kb)


Сообщение отредактировал Wasilic - Четверг, 03.04.2014, 16:44
 
Ответить
СообщениеТак?

Автор - Wasilich
Дата добавления - 03.04.2014 в 16:44
Dмитрий Дата: Четверг, 03.04.2014, 17:02 | Сообщение № 4
Группа: Пользователи
Ранг: Участник
Сообщений: 91
Репутация: 9 ±
Замечаний: 40% ±

Excel 2010
Верно! Без перехода на другой лист. Почему-то цикл не переключает лист в таком варианте.
[vba]
Код
ListBox1.List(j, 4) = Cells(i, 19)      
      [color]Sheets("Лист1").Activate[/color]
      For A = lr2 To 3 Step -1 'снизу до три
[/vba]
Wasilic, спасибо, выручили.


Сообщение отредактировал Dмитрий - Четверг, 03.04.2014, 17:03
 
Ответить
СообщениеВерно! Без перехода на другой лист. Почему-то цикл не переключает лист в таком варианте.
[vba]
Код
ListBox1.List(j, 4) = Cells(i, 19)      
      [color]Sheets("Лист1").Activate[/color]
      For A = lr2 To 3 Step -1 'снизу до три
[/vba]
Wasilic, спасибо, выручили.

Автор - Dмитрий
Дата добавления - 03.04.2014 в 17:02
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Заполнить ListBox с двух разных листов (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

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