私はExcelファイルを持っており、リストボックスにすべての列見出しを項目として追加しています。今、私が達成したいのは、リストボックスで複数の項目を選択したときに、対応する列をコピーして別のワークブックに貼り付けることです。VBA MACRO - Excelで列を動的に選択するListBoxを使用して
私は今すぐこのコードを持っています。リストボックスから選択した最初の列のみをコピーして貼り付けることができます。誰かが私を助けてくれることを願っている
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
これはヒントであり、検索する必要はなく、インデックスを使用してコピーする列を作成するだけです。 –