将列表框中的项目导出到Excel中的范围

时间:2015-08-21 00:56:38

标签: excel vba excel-vba listbox export

所以我在论坛(包括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

任何帮助都会非常感激,因为我花了好几个小时试图解决这个问题(尽管我不想实际承认这一点,但这是真的)

谢谢!

enter image description here

1 个答案:

答案 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