【问题标题】:listbox click vba excel列表框单击 vba excel
【发布时间】:2020-06-02 16:38:14
【问题描述】:

我在 Excel 工作表中有这样排列的数据

我想编写一个代码以在列表框中显示设备(A 到 G 列),当我单击设备名称时,我会列出知道如何使用该设备的人员列表,以显示在另一个列表中, 2 个列表框在同一个用户窗体中。

我写了这段代码,但我不知道如何完成它:在 additem 之后我应该写什么?

Private Sub ListBox_Equip_Click()

    fin_liste_equip = ws_Liste_Equip.Cells(1, 256).End(xlToLeft).Column

    curVal = Me.ListBox_Equip.Value
    For x = 2 To fin_liste_equip
        If ws_Liste_Equip.Cells(x, fin_liste_equip) = curVal Then
            Me.ListBox_Pers_Mait.AddItem ws_Liste_Equip
        End

 If
Next x

你可以在下图中看到我只知道如何填充我的第一个列表框

【问题讨论】:

    标签: excel vba


    【解决方案1】:

    或者可能是这样的?

    Private Sub ListBox_Equip_Click()
    'fin_liste_equip = ws_Liste_Equip.Cells(1, 256).End(xlToLeft).Column
    curVal = Me.ListBox_Equip.Value
    Set c = Rows(1).Find(curVal, lookat:=xlWhole)
    If c.Offset(1, 0).Value = "" Then Exit Sub
    
    Set Rng = Range(c.Offset(1, 0), c.End(xlDown))
    ListBox_Pers_Mait.Clear
    If Rng.Rows.Count = 1 Then ListBox_Pers_Mait.AddItem c.Offset(1, 0).Value
    If Rng.Rows.Count > 1 Then ListBox_Pers_Mait.List = Application.Transpose(Rng)
    
    'For x = 2 To fin_liste_equip
    '    If ws_Liste_Equip.Cells(x, fin_liste_equip) = curVal Then
    '        Me.ListBox_Pers_Mait.AddItem ws_Liste_Equip
    '    End
    End Sub
    

    代码假定第 1 行的列中不会有重复的设备名称。或者换句话说,您的 ListBox_Equip 项目是唯一的。

    【讨论】:

    • 我还有另一个问题,如果不是太多,我已经在这个 pb 上堆了几个星期了,我还没有找到解决方案,但是如果你能给我一些解决问题的提示,这里是我的问题的链接pb 再次感谢stackoverflow.com/questions/62117535/…
    • @FaruSZ,请看看我在那篇文章中的问题。因为老实说,我并不完全理解你在那篇帖子上的问题。
    【解决方案2】:

    首先,您需要设置要在 ListBox 中使用的列数(将其放在循环之外)

    Me.ListBox_Pers_Mait.ColumnCount = 7
    

    然后修改您的If 语句以使用类似以下的内容

    With Me.ListBox_Pers_Mait    
        .AddItem ws_List_Equip
        .List(.ListCount - 1, 1) = "Your Next Value"
        .List(.ListCount - 1, 2) = "Another Value"
        ' ......etc.
    End With
    

    我们从.ListCount 中减去 1,因为ListBox 的索引从 0 开始。

    【讨论】:

      猜你喜欢
      • 2019-07-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-10-23
      • 2019-09-13
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多