我正在尝试创建一个带有列表框的菜单,以便能够从Excel工作表中的列表中选择多个客户。有两个列表框,一个包含所有(默认)数据,另一个包含所选客户。 添加一个客户没有问题,但是当我添加第二个客户时,图形界面什么都没有显示,但经过一些调试后,SelectedCustomers.RowSource的数据中仍然有两行:
?SelectedCustomers.RowSource
$8:$8,$11:$11
这会让我相信我如何保存数据或我不知道的Excel的一些限制有一些错误。这是我用来保存数据的代码:
Private Sub CommandButton5_Click()
Dim temp As Range
For i = 0 To DefCustomers.ListCount - 1
If DefCustomers.Selected(i) = True Then
If temp Is Nothing Then
Set temp = Range(Rows(i + 4).Address)
Else
Set temp = Application.Union(temp, Range(Rows(i + 4).Address))
End If
End If
Next i
SelectedCustomers.RowSource = temp.Address
End Sub
之前是否有人遇到此问题或知道问题可能是什么?
答案 0 :(得分:0)
而不是 RowSource 使用AddItem method:
For i = 0 To DefCustomers.ListCount - 1
If DefCustomers.Selected(i) Then
SelectedCustomers.AddItem DefCustomers.Selected(i)
End If
Next i
Excel VBA中存在 ListBox.RowSource 属性的已知问题。
<强> [编辑] 强>
讨论后......
无论列数如何,您都可以将源表中的行复制到另一个工作表中,然后将 SelectedCustomers 列表框绑定到该数据