Форум программистов, компьютерный форум, киберфорум
VBA
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
0 / 0 / 0
Регистрация: 11.05.2015
Сообщений: 7
1

Выбор множества элементов в ListBox и запись каждого элемента в определенную ячейку

28.09.2015, 09:28. Показов 1204. Ответов 5
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Добрый день!
Мне нужно что б я в ListBox выбирал выборочные элементы и каждый элемент записывался в свою ячейку, у меня работает только для 1го элемента, когда выбираешь 2 и более - ничего не происходит
Вот код:
Visual Basic
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
Dim n As Integer, s As String
s = ""
 
For n = 0 To Me.ListBox1.ListCount - 1
If Me.ListBox1.Selected(n) Then
 
    stolbs2 = 1
    Do Until ActiveWorkbook.Worksheets("Образцы").Cells(1, stolbs2) = "Конец"
    If ActiveWorkbook.Worksheets("Образцы").Cells(1, stolbs2) = UserForm3.ComboBox1.Text Then
 
        s = s & Me.ListBox1.List(n) & vbLf ' Вроде тут элемент должен переходить на строку ниже
        nombag2 = Split(Trim(s), " - ")(0)
 
        stroks2 = 2
        Do Until ActiveWorkbook.Worksheets("Багет").Cells(stroks2, 1) = "Подрамник"
            If ActiveWorkbook.Worksheets("Багет").Cells(stroks2, 1) = nombag2 Then
            ActiveWorkbook.Worksheets("Образцы").Cells(stroks2, stolbs2) = "не надо"
            Me.ListBox1.AddItem nombag2 & " - " & "не надо"
 
            End If
        stroks2 = stroks2 + 1
        Loop
 
    End If
stolbs2 = stolbs2 + 1
Loop
 
End If
Next n
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
28.09.2015, 09:28
Ответы с готовыми решениями:

Как во все листы вставить в определенную ячейку название каждого соответствующего листа
Добрый день! Может кто знает - как решить задачу: как во все листы вставить в определенную ячейку...

Запись значения в определенную ячейку
Здравствуйте, не подскажете как записать определенное значение в соответствующую ячейку?

Запись переменной в определенную ячейку памяти
#include <iostream> using namespace std; int main() { int a=3; int* p=&a; cout<<p<<"...

Записать значение выделенного элемента ListBox в ячейку
Ребят подскажите как из листбокса,текст выбранной строки перенести в выбранную ячейку таблици excel...

5
6922 / 2832 / 543
Регистрация: 19.10.2012
Сообщений: 8,645
28.09.2015, 10:11 2
Попробуйте вынести из цикла
stolbs2 = 1
Глубже виртуально вникать недосуг.
0
0 / 0 / 0
Регистрация: 11.05.2015
Сообщений: 7
28.09.2015, 13:04  [ТС] 3
Вынос за цикл не помогло.
Прикрепил файл.
В Форме3 выбрирается Клиент1 - Выгрузить данные - Отсутствующие
Далее в Форме3 - выбор выделения текста (ВЫБОРОЧНО) - в listbox выбирается n количество элементов и нажимается в Форме3 - Отметить не надо. По одному элементу все отлично работает.
Вложения
Тип файла: rar 123.rar (45.8 Кб, 13 просмотров)
0
6922 / 2832 / 543
Регистрация: 19.10.2012
Сообщений: 8,645
28.09.2015, 13:06 4
Я пас - на работе архивы режут...
0
0 / 0 / 0
Регистрация: 11.05.2015
Сообщений: 7
02.10.2015, 08:03  [ТС] 5
Разобрался сам, оказывается нужно было s = "" поместить во внутрь цикла, поэтому больше и повторений не было, данные складывались))
Вот код исправленный может кому то пригодится
Visual Basic
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
Dim n As Integer, s As String
 
stolbs2 = 1
Do Until ActiveWorkbook.Worksheets("Образцы").Cells(1, stolbs2) = "Конец"
If ActiveWorkbook.Worksheets("Образцы").Cells(1, stolbs2) = UserForm3.ComboBox1.Text Then
 
    For n = 0 To Me.ListBox1.ListCount - 1
    If Me.ListBox1.Selected(n) Then
        s = ""
        s = s & Me.ListBox1.List(n) & vbLf
        nombag2 = Split(Trim(s), " - ")(0)
 
        stroks2 = 2
        
        Do Until ActiveWorkbook.Worksheets("Багет").Cells(stroks2, 1) = "Подрамник"
        If ActiveWorkbook.Worksheets("Багет").Cells(stroks2, 1) = nombag2 Then
            ActiveWorkbook.Worksheets("Образцы").Cells(stroks2, stolbs2) = "не надо"
            Me.ListBox1.AddItem nombag2 & " - " & "не надо"
 
        End If
        stroks2 = stroks2 + 1
        Loop
        
    End If
    Next n
End If
stolbs2 = stolbs2 + 1
Loop
0
6922 / 2832 / 543
Регистрация: 19.10.2012
Сообщений: 8,645
02.10.2015, 08:31 6
Глупость...
Тут явно много лишнего, и думаю это ломает всю идею:
Visual Basic
1
2
s = ""
s = s & Me.ListBox1.List(n) & vbLf
это равносильно
Visual Basic
1
s = Me.ListBox1.List(n) & vbLf
0
02.10.2015, 08:31
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
02.10.2015, 08:31
Помогаю со студенческими работами здесь

Сформировать множества А и В по заданному числу элементов для каждого множества
2)Сформировать множества А и В, базовый тип которых -70..30, по заданному числу элементов для...

Чтение и запись данных из множества ListBox в один файл.
Требуется помощь.Нужно сохранить Listbox1 и Listbox2 в txt,в гугле ничего такого не нашел,на вашем...

Выбор элемента listbox
Здравствуйте! Подскажите, нужно чтоб при выборе элемента из listbox чтоб менялся параметр...

Выбор элемента ListBox
Доброго времени суток!!! Есть ListBox и textBox. Нужно значение выбранного элемента в ListBox...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru