麻烦各位大神,我想把表一的数据同表二筛选一下,需要把表一和表二身份证号相同的行数据生成表三,表三需要包括表一全部列的内容和表二第三列的内容,并且把身份证号比对不同的生成表四。能否写一个宏实现?有朋友写了一段代码,但是不能实现全部功能,下面是代码。麻烦了,急用谢谢!
PublicSub saixuan()
Dim i, j, k As Integer
Dim b1c, b2c, b3c As Integer
For i = 1 To 32767 Step 1
If (Sheets(1).Cells.Item(i, 2) = "") Then
b1c = i - 1
Exit For
End If
Next i
MsgBox ("第一张表" + CStr(b1c - 1) + "个人。") '获得第一张表的人数
For i = 1 To 32767 Step 1
If (Sheets(2).Cells.Item(i, 2) = "") Then
b2c = i - 1
Exit For
End If
Next i
MsgBox ("第二张表" + CStr(b2c - 1) + "个人。") '获得第二张表的人数
b3c = 2 '第三张表从第二行开始存放数据
For i = 2 To b1c Step 1
For j = 2 To b2c Step 1
If (Sheets(1).Cells.Item(i, 2) = Sheets(2).Cells.Item(j, 2)) Then '第一张表i行的身份证和第二张表j行身份证号相同
For k = 1 To 4 Step 1
Sheets(3).Cells.Item(b3c, k) = Sheets(1).Cells.Item(i, k)
Next k
b3c = b3c + 1 '第三张表的人数增加1
Exit For
End If
Next j
Next i
MsgBox ("第三张表" + CStr(b3c - 2) + "个人。")
End Sub
|