网页资讯视频图片知道文库贴吧地图采购
进入贴吧全吧搜索

 
 
 
日一二三四五六
       
       
       
       
       
       

签到排名:今日本吧第个签到,

本吧因你更精彩,明天继续来努力!

本吧签到人数:0

一键签到
成为超级会员,使用一键签到
一键签到
本月漏签0次!
0
成为超级会员,赠送8张补签卡
如何使用?
点击日历上漏签日期,即可进行补签。
连续签到:天  累计签到:天
0
超级会员单次开通12个月以上,赠送连续签到卡3张
使用连续签到卡
06月12日漏签0天
excel吧 关注:281,179贴子:1,548,690
  • 看贴

  • 图片

  • 吧主推荐

  • 视频

  • 游戏

  • 26回复贴,共1页
<<返回excel吧
>0< 加载中...

大神给推荐个去重公式,不要最简,只要效率最高,处理速度最

  • 只看楼主
  • 收藏

  • 回复
  • 贴吧用户_73AR9eD
  • 多才多E
    9
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

比如这样的就是不合格的,数据多了就卡死


  • 夜辰无星
  • E通百通
    12
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
............透视表,数据-删除重复值


2025-06-12 05:53:12
广告
  • zmj9151
  • 多才多E
    9
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
vba字典


  • baifandu2013
  • 博采众E
    6
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
先透视生成结果,然后用函数转换到其他固定的表格中,这样就不会卡。
不要一步到位,可以把透视作为中间表。


  • 394988736
  • 见E勇为
    7
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
Sub 去重复()
Dim arr, d, m
arr = ActiveSheet.UsedRange
Set d = CreateObject("scripting.dictionary")
For Each m In arr
If m <> "" Then d(m) = ""
Next m
If d.Count > 0 Then
Worksheets.Add
[a1].Resize(d.Count, 1) = Application.Transpose(d.keys)
MsgBox "去重复成功!"
End If
End Sub


  • 魍魉魑魅
  • 见E勇为
    7
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
楼上 正解


  • 394988736
  • 见E勇为
    7
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
把代码放在worksheet的range change事件中就行


  • 394988736
  • 见E勇为
    7
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
Public d As Object
Private Sub Worksheet_Change(ByVal Target As Range)
Application.ScreenUpdating = False
Application.EnableEvents = False
Dim arr, m
arr = ActiveSheet.UsedRange
If d Is Nothing Then Set d = CreateObject("scripting.dictionary")
If d.Count > 0 Then d.RemoveAll
If ActiveSheet.UsedRange.Count < 2 Then sets: Exit Sub
For Each m In arr
If m <> "" Then d(m) = ""
Next m
If d.Count > 0 Then
'Worksheets.Add
ActiveSheet.UsedRange = ""
[a1].Resize(d.Count, 1) = Application.Transpose(d.Keys)
'MsgBox "去重复成功!"
End If
Application.EnableEvents = True
Application.ScreenUpdating = True
End Sub
Sub sets()
Application.EnableEvents = True
Application.ScreenUpdating = True
End Sub


2025-06-12 05:47:12
广告
  • 秦時明月漢時圓
  • 以E待劳
    10
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
字典不适合处理大数据,例如字典词条超过5万条以上的,据说会很卡


  • 贴吧用户_73AR9eD
  • 多才多E
    9
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
Sub aa()
Dim iCols
Dim cnn, SQL, rs
Set cnn = CreateObject("adodb.connection")
Set rs = CreateObject("adodb.recordset")
cnn.Open "Provider=Microsoft.jet.OLEDB.4.0;Extended Properties=excel 8.0;Data Source=E:\1.xls"
SQL = "select distinct * from [Sheet1$]"
Set rs = cnn.Execute(SQL)
Sheet2.Cells.ClearContents
For iCols = 0 To rs.Fields.Count - 1
Sheet2.Cells(1, iCols + 1).Value = rs.Fields(iCols).Name
Next
Sheet2.Range("A2").CopyFromRecordset rs
Set rs = Nothing
Set cnn = Nothing
End Sub
哇咔咔,大神们我从网上找到了 谢谢你们
@夜辰无星 @394988736 @86118920


  • 贴吧用户_73AR9eD
  • 多才多E
    9
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

@秦時明月漢時圓 @394988736 @555书生 @夜辰无星 @86118920 多谢各位的指点 我从网上找到一段别人的,改了改能用


登录百度账号

扫二维码下载贴吧客户端

下载贴吧APP
看高清直播、视频!
  • 贴吧页面意见反馈
  • 违规贴吧举报反馈通道
  • 贴吧违规信息处理公示
  • 26回复贴,共1页
<<返回excel吧
分享到:
©2025 Baidu贴吧协议|隐私政策|吧主制度|意见反馈|网络谣言警示