【发布时间】: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
【问题讨论】: