Все значения Listbox передать в макрос - VBA

Узнай цену своей работы

Формулировка задачи:

У меня есть лист бокс Me.list_box_1 с заполненными значениями : (отображаются на форме внутри Me.lst_box_1 ) -имя 1 -имя 2 -имя 3 Как мне все эти значения списком передать в другой макрос sub макрос_2 () чтобы над ним совершать действия как со списком? не знаю что для этого нужно , может записать все значения из Me.lst_box_1 в переменную или массив а затем как то передать в другой макрос чтобы там перебирать элементы?
Нашел чем то похожее:
Но здесь элементы все в одну строку, мне нужен список, где можно каждый элементы вытаскивать поочередно , чтобы сравнивать со значением в другом макросе...
Пытаюсь также как то так , с помощью массива :
Но в Array_1 попадает только один элемент (его можно увидеть так)
Однако когда просим следующий , то фиг там
- ошибка

Решение задачи: «Все значения Listbox передать в макрос»

textual
Листинг программы
' Создаем массив, заполняем его элементами listbox
 
 Sub macros_1()
 
'создали пустой массив ar
 ar = Array()
'задали размер массива, равный количеству элементов в listbox
 ReDim ar(0 To Me.ListBox1.ListCount - 1)
'заполняем циклом значения из listbox в массив ar
 For i = 0 To Me.ListBox1.ListCount - 1
 ar(i) = Me.ListBox1.List(i)
 Next i
 
'проверка - смотрим элементы по индексу
 MsgBox ar(1) 
 
'запускаем макрос  из другого модуля
 Application.Run "listbox_1" 
 
 End Sub
 
'<br>
'
 
'В другом модуле задаем массив как Public чтобы читать между модулями:
 
Option Explicit 
Public ar As Variant
 
'-----------------------------------
Sub listbox_1()
 
'проверка - извлечем этот элемент по индексу
MsgBox ar(1)
 
 End Sub

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

13   голосов , оценка 3.769 из 5
Похожие ответы