我创建了一个带有几个列表框的用户窗体。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。但是我不知道如何在a1中放入1个值,然后向下移动并在A2中放入下一个,依此类推,直到所有项目都被计入为止。
任何帮助将不胜感激。
答案 0 :(得分:0)
现在,您正在创建一个字符串。它有换行符,但仍然是一个文本。如果您没有将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列范围。