通过宏来实现第二个表中已经被移除的记录,并形成第三张表。
实际操作只需要新建一个宏,将以下代码复制进去,然后执行这个宏就完成任务了。下面是详细叙述。
预备:先将下面的代码复制到剪切板中
开始:单击菜单“工具/宏/宏”,弹出对话框中随便填写一个宏名(如“Macro1”),并单击“创建”,将弹出一代码编辑窗口,直接将先前复制的内容粘贴进去。关闭这个窗口,回到Excel窗口。
执行:单击菜单“工具/宏/宏”,弹出对话框中单击先前的宏名(如“Macro1”),再单击“执行”启动宏。如果以“身份证号码”列相比较,若此列在第一张表中是第一列,第二张表中也是第一列,弹出对话框中均输入 1 就开始了。
执行完毕后,会将找到的记录自动填写到第三张表中。
'以下为需要复制的代码,请先复制到剪切板中
'查找第一张表有且第二张表没有的行,形成第三张表的记录
Dim b As Boolean
Dim i As Long
Dim j As Long
Dim k As Long
Dim n As Long
Dim c As Long
Dim No1 As Integer
Dim No2 As Integer
Dim Str1 As String
Str1 = "比较两张表将依赖具有同项目的列进行,"
Str1 = Str1 & vbCrLf & "请输入表一比较列的序号:" & vbCrLf & "(A列为1;B列为2;C列为3……依此类推)"
Str1 = InputBox(Str1, "输入比较列序号")
If IsNumeric(Str1) = False Or Val(Str1) = 0 Then
MsgBox "没有输入有效的列序号数字,操作被取消!", vbInformation, "提示"
Exit Sub
Else
No1 = Val(Str1)
End If
Str1 = "请输入表二比较列的序号:" & vbCrLf & "(A列为1;B列为2;C列为3……依此类推)"
Str1 = InputBox(Str1, "输入比较列序号")
If IsNumeric(Str1) = False Or Val(Str1) = 0 Then
MsgBox "没有输入有效的列序号数字,操作被取消!", vbInformation, "提示"
Exit Sub
Else
No2 = Val(Str1)
End If
'复制表头到第三张表中,可能是多余的
Sheets("Sheet1").Select
Rows(1).Select
Selection.Copy
Sheets("Sheet3").Select
Rows(1).Select
ActiveSheet.Paste
'上面代码都是因为不知道你的相同列是哪一列,要知道的话就下面这几行就行了
'确定实际需要操作的行数
n = Sheet1.UsedRange.Rows.Count
c = Sheet2.UsedRange.Rows.Count
k = 1
'正式比较记录
For i = 1 To n
b = False
For j = 1 To c
If Sheet2.Cells(j, No2).Value = Sheet1.Cells(i, No1).Value Then
b = True
Exit For
End If
Next
If b = False Then
k = k + 1
Sheets("Sheet1").Select
Rows(i).Select
Selection.Copy
Sheets("Sheet3").Select
Rows(k).Select
ActiveSheet.Paste
End If
Next
If k = 1 Then
Str1 = "比较完毕,第二张中没有被移除的记录。"
Else
Str1 = "比较完毕,第一张表中有 " & k - 1 & " 行记录在第二张表中不存在,查看结果请打开sheet3。"
End If
MsgBox Str1, vbInformation, "提示"
建立第三个表格,
所有单元格都应用公式
=if(SHEET2!a1=SHEET1!a1,"同","不同")
复制到其他单元格,然后查找 不同
我的做法比较笨,先比较表1和表2的不同之处,再筛选出被删除的内容。
例如有A列至F列,操作:
1、在表1右边H列输入公式 =MID(A2,5,5)&B2&C2&D2&E2&F2向下拖拉,这步是把A至F列的内容合并到H列。
2、在右边的I列输入公式=MID(SHEET2!A2,5,5)&SHEET2!B2&SHEET2!C2& SHEET2!D2&SHEET2!E2&SHEET2!F2,这步是把SHEET2的A至F列的内容合并到SHEET1的I列。
3、在右边的J列输入公式=IF(H2="","",IF(ISERROR(VLOOKUP(H2,Sheet2!I:I,1,0)),"不同","相同")) 。公式向下拖拉后,两列不同的就显示“不同”,相同就显示“相同”。不同的就是有删除的部分。
4、选定显示相同与不同的列——数据——筛选——在下拉箭头中选择“不同”,结果就是被删除的部分了。
用VLOOKUP