【问题标题】:VBA: How to Create and Add Items to a multi-column ListBox?VBA:如何创建项目并将其添加到多列列表框?
【发布时间】:2013-09-18 21:36:08
【问题描述】:

如何在 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,但如果这是执行此过程的“更好”方式,请告诉我。

【问题讨论】:

  • 阅读MSDN,有很多例子,当你有问题需要解决时回帖。
  • 要求代码的问题必须表明对所解决问题的最低理解。包括尝试的解决方案、为什么它们不起作用以及预期的结果。另见:Stack Overflow question checklist
  • 另一个医药骗局链接 (vba4all [dot] com)...请删除您的评论,Meehow/@vba4all 并替换为 Wayback Machine 保存的副本。

标签: vba excel listbox multiple-columns


【解决方案1】:
ActiveSheet.ListBoxes.Add(400, 200, 100, 100).Select
With Selection
     .name = "ListBox1"
     .ListFillRange = "$A$2:$A$11"
End With

【讨论】:

  • 欢迎来到 Stack Overflow!虽然这段代码可能会回答这个问题,但最好包含一些上下文,解释它的如何工作以及何时使用它。从长远来看,纯代码的答案没有用处。
【解决方案2】:
listBox1.Items.AddRange(strArray)

【讨论】:

  • 这个答案涉及VB.NET,应该被删除。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-08-12
  • 2017-08-26
  • 1970-01-01
  • 1970-01-01
  • 2018-07-27
  • 1970-01-01
相关资源
最近更新 更多