Excel 两张表的对比

来源:百度知道 编辑:UC知道 时间:2024/06/19 19:48:05
sheet1中有sheet2的数据,但不是一一对应的。如何进行对比?
就是将sheet2中A1和sheet1中的A:A进行对比,如果为真,将2中的B1进行比对,还为真时,删除A1行。再将A2和sheet1中的A:A进行对比,如果为真,将2中的B2进行比对,还为真时,删除A2行。以此类推。
如:sheet1 A B sheet2 A B
2008001 001 2008005 005
2008002 002 2008003 003
2008003 003 2008009 009
2008004 004
2008005 005
我想要的结果就是:如果sheet2中数据sheet1中已经有了,就删除sheet2中的哪一行数据。
如果可以实现,我给加50。因为我是新手,如果用VBA我可能不太明白,所以最好能写一下注释,以及把程序加到哪里。
如何用Vlookup函数查找sheet2和sheet1 的C列。是否可以说详细点,感觉就快解决问题了。

1、 既然楼主希望用VBA实现,我就编制了一段,看看是否满足你的需要。代码如下:
Sub tty()
Dim i1, i2 As Integer 'i1,i2分别是sheet1、sheet2中行检索计数器
i1 = 1
Do While Sheet1.Cells(i1, 1) <> "" '如果sheet1中没有检索到表尾则继续循环
i2 = 1
Do While Sheet2.Cells(i2, 1) <> "" '如果shee12中没有检索到表尾则继续循环
If Sheet2.Cells(i2, 1) = Sheet1.Cells(i1, 1) And Sheet2.Cells(i2, 2) = Sheet1.Cells(i1, 2) Then
'sheet1中某行A、B列与sheet2的A、B列完全相同时
Sheet2.Rows(i2).Delete '则删除sheet2中的该行
Else
i2 = i2 + 1
End If
Loop
i1 = i1 + 1
Loop
End Sub

2、至于如何把程序作为“宏”放进你的EXECL表里,操作步骤:
(1)首先需降低“宏”的安全性。打开你的EXCEL表->选择"工具"->"宏"->"安全性"->选择“中”或“低”。
(2)按“ALT”+“F11”键->双击sheet1->把上面的代码完整的复制到窗体内-->保存并运行即可。

楼主,我,没时间给你写VBA,但是建议你考虑VLOOKUP,然后再用别的函数,也许就能搞定了

1, 先把sheet1 的C列变成A列和B列的合并,如2008001001
2:把sheet2 的C列也变成A列和B列的合并,如2008005005