excel 工作簿利用VBA查找重复数据并显示

一个工作簿下有2个工作表,每个工作表里面都有很多数据,sheet1里面为B列数据,sheet2里面也为B列数据,要在sheet3的A列里面显示sheet1和sheet2中有重复的数据。请详细说明。
意思很简单:表1里有一组数据,b2:b10000,表2里有一组数据b1:b5000,现在对比筛选这两组数据,将其中相同数据显示在表3里面 ,显示数据的时候,要附带显示出该数据其他相关信息,(不要只显示出单一数据),就是筛选出相同数据,用VBA编写,这样速度快些。用公式机器吃不消的

第1个回答  推荐于2016-02-11
Sub macro()
Dim i As Integer
Dim j As Integer
Dim k As Integer
Dim Sheet1 As Worksheet
Dim Sheet2 As Worksheet
Dim Sheet3 As Worksheet

k = 1
Sheet1 = ThisWorkbook.Sheets("sheet1")
Sheet2 = ThisWorkbook.Sheets("sheet2")
Sheet3 = ThisWorkbook.Sheets("sheet3")
For i = 2 To 10000 Step 1
If Sheet1.Cells(i, 2).Value <> "" Then
For j = 1 To 5000 Step 1
If Sheet1.Cells(i, 2).Value = Sheet2.Cells(j, 2).Value Then
Sheet3.Cells(k, 1).Value = Sheet1.Cells(i, 2).Value
k = k + 1
End If
Next j
End If
Next i
End Sub

该数据其他相关信息在同一行的话,在k=k+1前加 Sheet3.Cells(k, 2(或3、4....)).Value = Sheet1.Cells(i, 3(相关信息在的行数)).Value本回答被提问者采纳
第2个回答  2010-10-13
=IF(COUNTIF(Sheet1!B:B,Sheet2!B1)>=1,Sheet2!B1,"")
向下拉就好了,不一定要VBA 的
哦,同列里有没有重复的数据啊?
数据的其他相关信息是什么意思?本回答被网友采纳
第3个回答  2012-08-13
Sub tt()
Dim x
Dim z
Dim y
Dim wh As Worksheet
x = Worksheets(1).Range("b65536").End(xlUp).Row
For Each y In Worksheets(1).Range("b1" & ":" & "b" & x)
For z = 1 To Worksheets(2).Range("b65536").End(xlUp).Row
If y = Sheet2.Range("b" & z) Then
Worksheets(3).Range("a" & z).Value = Worksheets(2).Range("b" & z).Value
End If
Next z
Next
For Each wh In Worksheets '去掉空行
wh.Activate
On Error Resume Next
Range([a1], Cells(Rows.Count, 1).End(xlUp)).SpecialCells(xlCellTypeBlanks).EntireRow.Delete
Next
End Sub
第4个回答  2010-10-13
“sheet1和sheet2中有重复的数据”
这个描述看不大懂。

是要取2表共有的数据?还是要取sheet1中的重复数据 加上 sheet2中的重复数据?
第5个回答  2010-10-13
程序是很好编的出来的 ,但是关键在于你描述的似乎不太清楚,最好能把图片截一下,这样我们帮你就会方便些
相似回答