VBA Excel UserForm 多选、动态项目列表

VBA Ecel UserForm multiple selection, dymanic item list

我用这条指令做了用户窗体: http://www.excel-easy.com/vba/examples/multiple-list-box-selections.html

我尝试根据 table、

做动态项目列表
With ListBox_1
.RowSource = 
 Worksheets("warianty").ListObjects("in_").ListColumns(1).DataBodyRange
.ColumnHeads = True
.ColumnCount = 3
End With

结果为空白,没有列表 Select from.I 使用对象 table 获取动态范围。当然我可以使用其他解决方案,但这个似乎可以实现。

然后我想将每个选定的项目复制到其他 table 从第一行开始。 这是我尝试根据教程中的其他按钮修改的代码。

 Private Sub button_save_Click()
 Dim counter As Integer
 counter = 0
 For i = 0 To ListBox_2.ListCount - 1
 If ListBox_2.Selected(i - counter) Then
 ListBox_2.copy (i - counter) 'it gives error here
Worksheets("dane wejściowe").ListObjects("Tabela41").DataBodyRange(1 + i, 1).PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:=False,         Transpose:=True
 counter = counter + 1
 End If
 End Sub

除了改进代码之外,SB 能告诉我为什么我不能 'copy' 列出 ListBox.value 或某事吗?

请尝试以下操作:

代码

     Private Sub UserForm_Initialize()
  With ListBox_1

        .RowSource = Worksheets("warianty").ListObjects("in_1").ListColumns(1).DataBodyRange.Address
        .ColumnHeads = True
        .ColumnCount = 3

        End With
End Sub


        'end this:

        Private Sub button_save_Click()

        For i = 0 To ListBox_2.ListCount - 1
         If ListBox_2.Selected(i) Then

       Worksheets("dane wejsciowe").Select


        Dim new_row As ListRow
        Set new_row = Worksheets("danewejsciowe").ListObjects("Tabela41").ListRows.Add(AlwaysInsert:=True)




        new_row.Range.Cells(1, 1).Value = ListBox_2.List(i)


         End If


        Next
        End Sub