VBA:如何创建和添加项目到多列ListBox?

时间:2013-09-18 21:36:09

标签: vba excel-vba listbox multiple-columns excel

如何在Excel中使用VBA创建新的ListBox,然后通过数组将项目添加到不同的列?

我对ListBox的应用是用多列中的数据填充它,并让它出现在用户最后点击的位置。我只需要帮助创建和添加到多列列表框。

我能够添加新列表框的唯一方法是:

ActiveSheet.ListBoxes.Add(400, 200, 100, 100).Select
With Selection
    .name = "ListBox1"
End With

这样我创建了框并设置了它的名称,以便我稍后可以使用:

来引用它
ActiveSheet.Shapes.Range(Array("ListBox1")).Select

从这里开始,我会尝试添加一个二维数组,以为它会在两个单独的列中填充列表框:

Dim strArray(2, 1) As Variant
    strArray(0, 0) = "Value 1"
    strArray(0, 1) = "Value 2"
    strArray(1, 0) = "Value 3"
    strArray(1, 1) = "Value 4"
    strArray(2, 0) = "Value 5"
    strArray(2, 1) = "Value 6"

With Selection
    .AddItem strArray
End With

我研究过有一个名为'.ColumnCount'的设置但是当我尝试使用此设置时会产生“运行时错误'438':”

With Selection
    .ColumnCount = 2
End With

目前,我正在尝试避免在使用此ListBox时使用UserForm,但如果这是执行此过程的“更好”方式,请告诉我。

2 个答案:

答案 0 :(得分:1)

ActiveSheet.ListBoxes.Add(400, 200, 100, 100).Select
With Selection
     .name = "ListBox1"
     .ListFillRange = "$A$2:$A$11"
End With

答案 1 :(得分:-1)

listBox1.Items.AddRange(strArray)