Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 4216|回复: 5

筛出不重复姓名

[复制链接]
发表于 2008-6-22 16:30 | 显示全部楼层 |阅读模式
本帖最后由 爱疯 于 2013-4-21 11:42 编辑

用VBA把SHEET1中的不重复姓名筛到SHEET2中。

要求只用VBA完成,不用高级筛选和录宏

 

NlAWVBOM.rar (4.41 KB, 下载次数: 27)
发表于 2008-6-22 16:46 | 显示全部楼层
本帖最后由 爱疯 于 2013-4-21 11:39 编辑

[hide] 0ntLAm1k.rar (8.57 KB, 下载次数: 23)
回复

使用道具 举报

发表于 2008-6-22 20:22 | 显示全部楼层

Sub sx()
Sheet2.[a:a].ClearContents
Sheet1.Range("a:a").AdvancedFilter 2, , Sheet2.[a1], 1
Sheet2.Activate
[a1] = "不重复姓名"
End Sub
其实用高级筛选是最快的。
回复

使用道具 举报

发表于 2008-8-18 10:20 | 显示全部楼层

Dim rn As Range
Set d = CreateObject("scripting.dictionary")
For Each rn In [a2:a30]
If rn.Value <> "" And Not d.Exists(rn.Value) Then d.Add rn.Value, rn.Value
Next
Sheet2.[a2:a65536].Clear
Sheet2.Range("a2").Resize(d.Count) = Application.Transpose(d.Items)
回复

使用道具 举报

发表于 2009-9-10 20:55 | 显示全部楼层

Sub 字典筛选不重复姓名()
    Set d = CreateObject("scripting.dictionary")
    Dim a As Integer, sin1 As Integer
        sin1 = Sheet1.Range("a65536").End(xlUp).Row
        For a = 1 To sin1 - 1
            stmp = Sheet1.Cells(a + 1, "a")
            If Not d.exists(stmp) Then
                d(stmp) = ""
            End If
        Next
        Sheet2.Range("a2").Resize(d.Count, 1) = Application.WorksheetFunction.Transpose(d.keys)
End Sub
回复

使用道具 举报

发表于 2009-9-16 07:43 | 显示全部楼层

VBA不会,高级筛选实现可以的,或使用数据透视表也可以

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-4-20 08:16 , Processed in 0.456345 second(s), 9 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表