我有一个用户表单,他们应该从工作表中的表中选择供应商,当他们按下“ShowProducts”命令时,表单应该在下面的文本框中显示来自该供应商的所有文章。
我制作了以下代码,但它一直在行If Suppl.Value = Me.LstB_Supplier.Value Then
上给我一个错误。
我搜索并尝试过在此网站和其他网站上找到的不同选项,但我似乎无法找到错误。
任何人都可以帮助我吗?谢谢!
Private Sub Cmd_ShowProducts_Click()
Dim Suppl As Range
Dim i As Integer
For Each Suppl In Range("T_Prod_Fix[Supplier Name]")
If Suppl.Value = Me.LstB_Supplier.Value Then
With Me.LstB_Products
.AddItem
.List(i, 0) = Suppl.Offset(0, 1).Value 'article nbr
.List(i, 1) = Suppl.Offset(0, -1).Value 'article name
i = i + 1
End With
End If
Next Suppl
End Sub
答案 0 :(得分:0)
如果需要检查,列表框中选择的值是否存在于另一个列表中,则需要嵌套循环。使用第一个循环,您将获得所选值,并且使用内部循环,您需要检查它是否存在于您的范围内。
E.g。在你的情况下:
For lItem = 0 To ListBox1.ListCount - 1
If ListBox1.Selected(lItem) Then 'Check for selection
For Each suppl In Range("T_Prod_Fix[Supplier Name]")
If suppl = ListBox1(lItem) Then
'your logic
End If
Next suppl
End If
Next lItem
相关:VBA to get values from a listbox on a spreadsheet in Excel