Ich habe eine Excel-Datei und was ich getan habe ist, dass ich jede Spaltenüberschrift der Listbox als Elemente hinzufügen. Nun, was ich erreichen möchte, ist, wenn ich mehrere Elemente in Listbox wähle, wird es die entsprechende Spalte kopieren und in eine andere Arbeitsmappe einfügen.VBA MACRO - Dynamisch Spalten in Excel mit ListBox
Ich habe diesen Code gerade, er kann nur die erste Spalte kopieren und einfügen, die ich aus der Listbox auswählte. Ich hoffe, jemand könnte mir helfen.
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
von Ihrer Beschreibung könnte versuchen, Ihre Listbox List des worksheet.columns (Index) –
Ja @Nathan_Sav in Korrelation sein, dass ich richtig s. – alejandraux
das war ein Hinweis, keine Notwendigkeit zum Suchen usw., verwenden Sie einfach die Indizes, um die Spalten zu erstellen, die Sie kopieren möchten. –