所以我在论坛(包括Stack)之后搜索谷歌和论坛试图解决这个问题。我想要做的就是有一个ActiveX按钮将列表框的内容导出到Excel中的范围。
下面是我将ListBox1中的项添加到ListBox2的代码。在将所有需要的项目移动到ListBox2之后,所述ActiveX按钮(SomeButton_Click)然后将ListBox2中的所有项目导出到" Sheet15"从范围开始(" a1")。
(请注意,这是一个不在实际表单上的ActiveX ListBox。它在工作表中)
Public Sub BTN_MoveSelectedRight_Click()
Dim iCtr As Long
Dim n As Long, lRow As Long
Dim cStartCell As Range
For iCtr = 0 To Me.ListBox1.ListCount - 1
If Me.ListBox1.Selected(iCtr) = True Then
Me.ListBox2.AddItem Me.ListBox1.List(iCtr)
End If
Next iCtr
For iCtr = Me.ListBox1.ListCount - 1 To 0 Step -1
If Me.ListBox1.Selected(iCtr) = True Then
Me.ListBox1.RemoveItem iCtr
End If
Next iCtr
End Sub
下面是执行导出的按钮:
Public Sub SomeButton_Click()
'What code can I put here to perform the export to abovementioned range?
End sub
任何帮助都会非常感激,因为我花了好几个小时试图解决这个问题(尽管我不想实际承认这一点,但这是真的)
谢谢!
答案 0 :(得分:2)
你走了:
Public Sub SomeButton_Click()
Dim v
v = Sheet15.ListBox2.List
Sheet15.[a1].Resize(UBound(v)) = v
End Sub
如果列表框位于其他工作表上,则需要对其进行调整。
编辑#1
这样更好:
Public Sub SomeButton_Click()
With Sheet15
.[a1].Resize(.ListBox1.ListCount) = .ListBox1.List
End With
End Sub