Как получить вывод из списка, чтобы заполнить некоторые ячейки - PullRequest
0 голосов
/ 27 февраля 2019

Я создал пользовательскую форму с парой списков в списке. В Listbox1 есть все элементы, пользователь может выбрать несколько значений, чтобы затем перейти в Listbox2.как только они появятся в listbox2, мне нужно, чтобы они заполнили некоторые ячейки.С 1 элементом списка на ячейку.

Мне больно пытаться понять, как это сделать.Пока что все, что у меня есть, это:

Private Sub CommandButton1_Click()
Dim tmpMsg As String
Dim t As Long

 tmpMsg = "Selected categories:"

For t = 1 To ListBox2.ListCount
 tmpMsg = tmpMsg & vbNewLine & ListBox2.List(t - 1)
Next

 Worksheets("Specialist Prices").Activate
    Range("a1").Select
    ActiveCell.Value = tmpMsg

End Sub

Это заполняет ячейку A1 полным набором элементов списка.но я не знаю, как поместить 1 значение в a1, затем переместиться вниз и поместить следующее в A2 и т. д., пока все элементы не будут учтены.

Любая помощь будет оценена.

1 Ответ

0 голосов
/ 27 февраля 2019

Прямо сейчас вы создаете одну строку.В нем есть разрывы строк, но это все еще один текст.Если вы не используете tmpmsg для чего-то другого, вы можете использовать цикл for для заполнения вашего листа

For t = 1 To ListBox2.ListCount
  Thisworkbook.sheets("Specialist Prices").Range("A" & t).value = ListBox2.List(t - 1)
Next

Вы можете даже сделать это быстрее, добавив массив ко всему диапазону.ListBox2.List - это массив значений, и вы можете вставить этот массив в диапазон ячеек:

ThisWorkbook.sheets("Specialist Prices").Cells(1,1).Resize(ListBox2.ListCount,1) = ListBox2.List

Метод Resize здесь гарантирует, что диапазон содержит то же количество ячеек, что и элементыв ListBox2.Он изменяет размер от 1 ячейки до ListBox2.ListCount количества строк и 1 столбца.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...