You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

VBA需求:根据List_Mat选中物料在List_Into展示对应产品

解决方案

实现逻辑

  1. 给List_Mat列表框绑定Click事件,点击时触发查询
  2. 读取"Stammdaten"工作表的物料数据,筛选出选中原材料对应的所有产品
  3. 清空List_Into后,将匹配结果填充进去

可运行代码示例

Private Sub List_Mat_Click()
    Dim ws As Worksheet
    Dim lastRow As Long
    Dim i As Long
    Dim selectedMat As Variant
    
    ' 获取选中的原材料编号
    selectedMat = List_Mat.Value
    If IsEmpty(selectedMat) Then Exit Sub
    
    ' 清空目标列表框
    List_Into.Clear
    
    ' 指向数据存储工作表
    Set ws = ThisWorkbook.Worksheets("Stammdaten")
    lastRow = ws.Cells(ws.Rows.Count, "K").End(xlUp).Row
    
    ' 遍历K列,匹配原材料并添加对应产品
    For i = 2 To lastRow ' 假设第1行为表头,无表头则改为i=1
        If ws.Cells(i, "K").Value = selectedMat Then
            ' 此处假设产品编号在J列,根据实际表格结构修改列标识
            List_Into.AddItem ws.Cells(i, "J").Value
        End If
    Next i
    
    ' 无匹配结果时提示
    If List_Into.ListCount = 0 Then
        List_Into.AddItem "未找到使用该原材料的产品"
    End If
End Sub

需根据实际情况调整的点

  • 产品列位置:代码中默认产品在J列,需替换为你表格中实际的产品列标识(比如"A"或数字序号)
  • 表头判断:如果数据行从第1行开始,把循环起始值i=2改成i=1
  • 数据类型匹配:若原材料编号是数字格式,将selectedMat改为CLng(List_Mat.Value)确保类型一致

排查要点

  • 确认"Stammdaten"工作表名称完全匹配(大小写敏感)
  • 检查List_Mat的数据源是否已正确加载原材料列表
  • 确保文件已启用宏,否则代码无法执行

内容的提问来源于stack exchange,提问作者Peet_Wackel

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.30 08:24:56