如何从列表框中获取输出以填充某些单元格

How to get an output from a list box to populate some cells

我创建了一个用户窗体,其中包含几个列表框。Listbox1 中包含所有项目,用户可以 select 多个值,然后移至 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,依此类推,直到所有项目都被考虑在内。

如有任何帮助,我们将不胜感激。

现在您正在创建一个字符串。它有换行符,但它仍然是一个文本。如果您没有将 tmpmsg 用于其他用途,您可以使用 for 循环来填充您的 sheet

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 列数的范围。