EXCEL的自动筛选的宏代码,如何使用

想实现输入数据跟表格中另一列的数据自动对比筛选,把重复的存放在另一列中,
例如:
A B C
55 62 62
62 81 81
23 33
81
A列中的数据固定,在B列中输入数据,在C列中自动生成A列和B列中重复的数据!希望各位高手作答的时候讲清楚怎么使用,谢谢!

在你数据当前的左下角sheet 鼠标右键 点击最后一个 查看代码  把下面的代码复制到里面

使用的时候 03版是 菜单 工具----宏---宏---找到test的宏执行 即可

Sub test()

 Application.ScreenUpdating = False

Dim rng As Range

Dim r1, i As Long

Dim findvalue As Range

r1 = ActiveSheet.Range("B65536").End(xlUp).Row

i = 1

For Each rng In ActiveSheet.Range("B1:B" & r1)

    Set findvalue = ActiveSheet.Columns(1).Find(what:=rng.Value)

    If Not findvalue Is Nothing Then

       Cells(i, 3).Value = rng.Value

       i = i + 1

    End If

Next

 Application.ScreenUpdating = True

End Sub

温馨提示:内容为网友见解,仅供参考
第1个回答  2011-05-25
C1输入公式
=index(b:b,small(if(countif(a:a,b$1:b1),row($1:1),4^8),row(c1)))&""
数组公式以ctrl+shift+enter三键组合结束输入
公式下拉到最后即可追问

只能验证第一个重复的数据,剩下的就显示错误了

追答

是数组公式,要以ctrl+shift+enter三键组合结束输入的

追问

数组公式会使用,一旦B列输入不是A列里的数据以后,继续输入,即使在输入A列里有的数据,C列也不会显示这个数据

追答

哦,那要把公式改一下了
=INDEX(B:B,SMALL(IF(COUNTIF(A:A,B$1:B$100),ROW($1:$100),4^8),ROW(C1)))&""

追问

还是不好用,还是刚才的问题,比以前唯一改进的地方就是当B列第一次输入的不是A列中的数据时,继续输入,一旦有A列中的数据,C列依然能显示,但是往后再出现这种情况就还是以前的问题,C列不在显示了

追答

只能把100改大了,你可以改为65536,电脑运行速度会变慢.用VB可以解决。
不好意思,帮不到你了

相似回答