如何从列表框中获取输出以填充某些单元格
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 列数的范围。
我创建了一个用户窗体,其中包含几个列表框。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 列数的范围。