【问题标题】:Getting the order of the selected ListBox items in VBA?获取 VBA 中选定列表框项目的顺序?
【发布时间】:2016-06-02 11:58:02
【问题描述】:

我有两个列表框,一个在左边,一个在右边。理想情况下,我希望用户能够从左侧列表框中选择他想要的任何数据,然后按“添加”按钮,让他选择的项目按照他们选择的顺序显示在第二个列表框 项目

如果他们先选择第 2 项,然后选择第 23 项,然后选择第 17 项,我希望显示右侧的列表框:

Item 2
Item 23
Item 17

现在我可以让用户点击第 2 项,然后单击添加(其中编译器循环遍历列表项并将选定的项放入第二个列表),然后是第 23 项,然后添加,依此类推,我想进一步自动化这个过程。我知道列表框的“Selected”属性是一个布尔数组。

我遇到了this,但它在 jQuery 中,我不知道第一件事:

想法?有什么方法可以让编译器记住选择的顺序?

【问题讨论】:

    标签: vba listbox macros solidworks


    【解决方案1】:

    您可以使用集合并跟踪自己选择的索引。

    Dim selectedIndices As New Collection

    然后在选择或取消选择的列表框上使用 Add() 或 Remove() 函数

    selectedIndices.Add(index)
    selectedIndices.Remove(index)
    

    取决于左侧列表框中项目的状态。然后,不要使用列表框的 selected 属性,而是遍历您的集合并按该顺序添加它们。

    【讨论】:

    • 这真的很有帮助,谢谢!那么在左侧的列表框中,如果从 30 多个项目中随机选择一个项目,我将如何获得它的索引?我是否必须每次通过检查每个项目的布尔值来遍历项目以获取索引?
    • 应该有一个与点击事件一起传递的索引或对象,可以让您知道选择了哪个特定项目,或者如果它们是具有单独事件的单独对象,您将知道哪个事件由导致事件的对象。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多