我有一個excel文件,我所做的是將每個列標題作爲項目添加到列表框中。現在,我想要實現的是當我在列表框中選擇多個項目時,它將複製相應的列並將其粘貼到另一個工作簿。VBA宏 - 在Excel中使用列表框動態選擇列
我現在有這個代碼,它只能複製和粘貼我從列表框中選擇的第一列。我希望有人能幫助我。
Private Sub CommandButton1_Click() ' generate result
Dim wkb As Workbook
Dim rng As Range
Dim cl As Object
Dim strMatch As String
Dim Size As Integer
Dim lRow As Long, lCol As Long
Dim rng1 As Range
Dim rng2 As Range
Dim rng3 As Range
Set rng1 = Cells.Find("*", [a1], xlFormulas, , xlByRows, xlPrevious)
Set rng2 = Cells.Find("*", [a1], xlFormulas, , xlByColumns, xlPrevious)
Set rng3 = Range([a1], Cells(rng1.Row, rng2.Column))
strMatch = ListBox2.List(0) 'Copying Respondent Number
Set rng = Range("A1:Z1")
For Each cl In rng
If cl.Value = strMatch Then
cl.EntireColumn.Copy 'Copy Selected Column
Set wkb = Workbooks.Add 'Adding New Workbook
ActiveSheet.Paste 'Paste Selected Column
Exit For
End If
Next cl
End Sub
,你的列表框LISTINDEX將在相關的worksheet.columns(指數) –
是@Nathan_Sav,我的正確。 – alejandraux
這是一個提示,不需要查找等,只需使用索引來建立你想要複製的列。 –