【问题标题】:Array ListBox Populating only the last option数组 ListBox 仅填充最后一个选项
【发布时间】:2021-12-01 00:33:10
【问题描述】:

我希望我的一位 vba 爱好者可以提供帮助。我在用户表单中有 2 个组合框。在第一个列表框中,我希望选择一个 LOB(业务线)。在相应的框中,我希望引入一个名称列表。我在一张表上有一个表,该表具有 LOB 的重复值,并且在右侧的列中,我想在下一个框中填充所有名称。我遇到的问题是,我尝试填充的组合框始终填充最终值,其余值以空白形式出现。下面是我的代码。

Private Sub CBLOB_Change()

Dim arrData As Variant
Dim arrProdFam As Variant
Dim mysearch As String
Dim cnt As Long
Dim idx As Long
Dim Searchrange As Range
    
    If Me.CBLOB.ListIndex <> -1 Then
        mysearch = Me.CBLOB.Value
    
        With Sheets("Lookups")
            Set Searchrange = Sheets("Lookups").Range("N2", .Range("N" & .Rows.Count).End(xlUp))
        End With
    
        arrData = Searchrange.Resize(, 3).Value
    
        ReDim arrProdFam(1 To UBound(arrData, 1))
        
        For idx = LBound(arrData, 1) To UBound(arrData, 1)
            If arrData(idx, 1) = mysearch Then
                Me.CBProdFam = arrData(idx, 2)
                cnt = cnt + 1
                arrProdFam(cnt) = arrData(idx, 3)
            End If
        Next idx
        
        If cnt > 0 Then
            ReDim Preserve arrProdFam(1 To cnt)
            Me.CBProdFam.List = arrProdFam
        Else
            MsgBox "Uh oh, things have gone a little sideways and the LOB " & mysearch & " cannot be located. Please try another Option!"
        End If
    Else
        MsgBox "Please select a LOB to search for!"
    End If
    
End Sub

【问题讨论】:

    标签: excel vba userform


    【解决方案1】:

    放弃上面的。我一发布就看到我输入了arrProdFam(cnt) = arrData(idx, 3),应该是arrProdFam(cnt) = arrData(idx, 2)

    【讨论】:

    • 请编辑您的问题,而不是发布附录作为答案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-21
    • 1970-01-01
    • 2019-08-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多