excel多条件匹配跨表,写一个excel脚本,通过两个表的商品ID,sku,标题,来匹配品类
时间: 2024-02-03 16:04:27 浏览: 30
以下是一个Excel VBA的脚本,可以实现通过两个表的商品ID,SKU,标题来匹配品类:
```
Sub MatchCategories()
Dim ws1 As Worksheet, ws2 As Worksheet
Dim lastRow1 As Long, lastRow2 As Long
Dim i As Long, j As Long
Dim matchFound As Boolean
Set ws1 = Worksheets("Sheet1") ' 第一个表格
Set ws2 = Worksheets("Sheet2") ' 第二个表格
lastRow1 = ws1.Cells(Rows.Count, 1).End(xlUp).Row ' 第一个表格最后一行
lastRow2 = ws2.Cells(Rows.Count, 1).End(xlUp).Row ' 第二个表格最后一行
For i = 2 To lastRow1 ' 遍历第一个表格
matchFound = False ' 初始化匹配状态
For j = 2 To lastRow2 ' 遍历第二个表格
If ws1.Cells(i, 1).Value = ws2.Cells(j, 1).Value And ws1.Cells(i, 2).Value = ws2.Cells(j, 2).Value And ws1.Cells(i, 3).Value = ws2.Cells(j, 3).Value Then ' 匹配条件
ws1.Cells(i, 4).Value = ws2.Cells(j, 4).Value ' 将品类赋值到第一个表格
matchFound = True ' 标记匹配成功
Exit For ' 退出内部循环
End If
Next j
If Not matchFound Then ws1.Cells(i, 4).Value = "" ' 如果没有匹配成功,则清空品类
Next i
End Sub
```
在这个脚本中,我们首先定义了两个工作表对象ws1和ws2,然后获取了它们的最后一行行号。然后,我们使用两个嵌套的for循环来遍历两个表格。在内部循环中,我们使用If语句来检查是否存在匹配条件。如果找到了匹配的条件,则将品类赋值到第一个表格中。如果没有找到匹配条件,则清空品类单元格。
请注意,在运行此脚本之前,您需要将工作表名称“Sheet1”和“Sheet2”更改为您实际使用的工作表名称。