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
我用这条指令做了用户窗体: 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