第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
程序是很好编的出来的 ,但是关键在于你描述的似乎不太清楚,最好能把图片截一下,这样我们帮你就会方便些