VBA Excel 多列 multiselect 列表框中的前 select 项

VBA Excel pre-select items in a multicolumn multiselect listbox

我正在尝试加载一个包含两列项目的列表框,根据电子表格检查每个条目,如果找到该条目,则select检查该行。

结果是加载客户列表,识别和 selecting 已经在邮寄列表中的项目,允许用户编辑 selection 并使用更新后的 select离子。

我试图在列表框的加载中进行检查,但由于我被错误绊倒,我将它分开以使事情更清楚,错误发生在下面的代码行 CRM_Edit_Groups.ListBox1(j).Selected = True

    With Rows(1)
        Set c = .Find(What:=showgroup, LookIn:=xlValues, LookAt:=xlWhole)
    End With

    For i = 0 To wk.Sheets("temp").UsedRange.Rows.count + 1
        code = wk.Sheets("temp").Range("a" & mycount)
        company_name = wk.Sheets("temp").Range("b" & mycount)

        CRM_Edit_Groups.ListBox1.ColumnCount = 2
        CRM_Edit_Groups.ListBox1.ColumnWidths = "40;80"
        CRM_Edit_Groups.ListBox1.AddItem
        CRM_Edit_Groups.ListBox1.list(i, 0) = code
        CRM_Edit_Groups.ListBox1.list(i, 1) = company_name
        mycount = mycount + 1
    Next


    For j = 0 To Me.ListBox1.ListCount - 1
        check = Me.ListBox1.list(j, 0)
        With Columns(c.Column)
            Set d = .Find(What:=check, MatchCase:=False)
        End With
        If Not d Is Nothing Then CRM_Edit_Groups.ListBox1(j).Selected = True
        If Not d Is Nothing Then Set d = Nothing
    Next

我已经包含了用于加载列表框的代码,以及根据电子表格检查每个列表框的循环,我尝试了很多组合,包括:

CRM_Edit_Groups.ListBox1(j,0).Selected = True
CRM_Edit_Groups.ListBox1(j,1).Selected = True
CRM_Edit_Groups.ListBox1(j.row).Selected = True

...但所有结果都是 "Run-time error '424': Object required",我知道我无法处理此处的行,而是搜索网站,google 我只是找到有关如何阅读的信息页面select 编辑了列表框中的项目,而没有太多关于如何在初始化期间 select 的内容。

你应该使用

CRM_Edit_Groups.ListBox1.Selected(j) = True

此外,请确保您的列表允许多项选择。 Select 您在用户表单中的列表框 window 并转到对象属性。找到 属性 MultiSelect 并选择选项 1.