将几个元素添加到vba中的列表框菜单中

时间:2015-01-05 10:15:13

标签: excel vba listbox

我正在尝试创建一个带有列表框的菜单,以便能够从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

之前是否有人遇到此问题或知道问题可能是什么?

1 个答案:

答案 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 列表框绑定到该数据