VBA写代码思路请师傅们指导一下

img

师傅们 帮忙指点一下
表二中 A2:A100 数据是自己后填进去的
用什么思路去 表一中 匹配数据啊?
刚接触VBA 需要同时匹配 itemNO 和 warehousename 有好的建议吗?
谢谢先

ItemNo是放一起的吗?如果是直接遍历表1,判断itemNo不一样时新起一行依次填充FG,RM,TOOL,SP的值。

不是在一起,可以遍历表一用scripting.dictionary归类FG,RM,TOOL,SP的值(放数组中),然后键名称为ItemNo,然后再遍历字典依次写入表2(当然也可以在在遍历表1的时候用Find函数找表2中的ItemNo是否存在,存在就写入对一个的列值)

下面代码为ItemNo连续的示例

img


Sub writeData()
  rownum = Sheets("sheet1").Range("A65536").End(xlUp).row
  itemno = ""
  RowIndex = 1
  For i = 2 To rownum
      If itemno <> Sheets("sheet1").Cells(i, "B") Then 'ItemNo²»Ò»Ö£¬ÐÂÆðÒ»ÐÐ
        itemno = Sheets("sheet1").Cells(i, "B")
        RowIndex = RowIndex + 1
        Sheets("sheet2").Cells(RowIndex, "A") = itemno
      End If
      WarehouseName = Sheets("sheet1").Cells(i, "A")
      cellName = "B"
      If WarehouseName = "RM" Then
        cellName = "C"
      ElseIf WarehouseName = "TOOL" Then
        cellName = "D"
      ElseIf WarehouseName = "SP" Then
        cellName = "E"
      End If
      
      
      Sheets("sheet2").Cells(RowIndex, cellName) = Sheets("sheet1").Cells(i, "C")

  Next
End Sub


img


有其他问题可以继续交流~

1 暴力向--》 将表一的数据装进list里面再遍历,记住要装进list,VBA遍历excel的数据有点慢
2 简单向--》 匹配数据嘛,可以尝试用透视vlookup试试?