请写一段VBA代码,帮我解决以下问题:请根据表格sheet2中,第一列和第二列的对照规则,将sheet1中第一列的数据生成第二列,可以模糊生成。
时间: 2024-02-11 17:06:08 浏览: 167
以下是一个简单的VBA代码,它可以根据表格sheet2中,第一列和第二列的对照规则,将sheet1中第一列的数据生成第二列:
```VBA
Sub GenerateColumn()
Dim ws1 As Worksheet
Dim ws2 As Worksheet
Dim lastRow1 As Long
Dim lastRow2 As Long
Dim i As Long
Dim j As Long
Dim match As Boolean
Set ws1 = ThisWorkbook.Sheets("Sheet1")
Set ws2 = ThisWorkbook.Sheets("Sheet2")
lastRow1 = ws1.Cells(ws1.Rows.Count, 1).End(xlUp).Row
lastRow2 = ws2.Cells(ws2.Rows.Count, 1).End(xlUp).Row
For i = 1 To lastRow1
match = False
For j = 1 To lastRow2
If InStr(ws1.Cells(i, 1).Value, ws2.Cells(j, 1).Value) > 0 Then
ws1.Cells(i, 2).Value = ws2.Cells(j, 2).Value
match = True
Exit For
End If
Next j
If Not match Then
ws1.Cells(i, 2).Value = "No match"
End If
Next i
End Sub
```
这个代码中,我们首先获取了Sheet1和Sheet2的引用,然后获取了它们中最后一行的行号。接着,我们循环遍历Sheet1中第一列的每个单元格。对于每个单元格,我们在Sheet2中查找与其匹配的第一个单元格。如果找到了匹配的单元格,我们将Sheet2中的第二列数据复制到Sheet1中的第二列。如果没有找到匹配的单元格,我们将"No match"写入Sheet1中的第二列。
阅读全文