`
阅: 33356 | 回: 45
重复数据去重合并 全部 , 编号:01655 快速回复
发表于 2021/9/17 13:55:00   最佳方案
头像 等级:传说级人物
积分:2661
财富值:1859
身份:普通用户
使用 方方格子工具箱 里面的 分类汇总功能即可实现。
我的个性签名
发表于 2023/2/28 17:30:05   
头像 等级:初学者
积分:7
财富值:1
身份:普通用户
牛呀牛呀

我的个性签名
发表于 2023/3/13 21:16:16   
头像 等级:初学者
积分:1
财富值:3
身份:普通用户
1111
我的个性签名
发表于 2023/3/20 20:45:08   
头像 等级:初学者
积分:2
财富值:34
身份:普通用户
学习了 感谢大佬
我的个性签名
发表于 2023/3/27 11:01:16   
头像 等级:初学者
积分:4
财富值:2
身份:普通用户
这个功能可以 
我的个性签名
发表于 2023/8/11 20:09:12   
头像 等级:学有小成
积分:14
财富值:2
身份:普通用户
看起来很不错哦,收藏之~~~
谢谢LZ啦!!!
我的个性签名
发表于 2023/9/26 19:32:04   
头像 等级:初学者
积分:1
财富值:2
身份:普通用户
求个附件
我的个性签名
发表于 2024/1/26 17:17:08   
头像 等级:初学者
积分:1
财富值:2
身份:普通用户
真是太好了
我的个性签名
发表于 2024/2/1 18:54:34   
头像 等级:初学者
积分:5
财富值:2
身份:普通用户
又学到了
我的个性签名
发表于 2024/2/1 18:54:35   
头像 等级:初学者
积分:5
财富值:2
身份:普通用户
又学到了
我的个性签名
发表于 2024/2/11 21:50:47   
头像 等级:学有小成
积分:10
财富值:2
身份:普通用户

回复:楼主


hello,打开VBA 复制以下代码 ,注意{原始表和目标表格的名称如有需要需要自己替换一下},亲测 OK 跑的正常.

Sub MergeDuplicates()
    Dim wsSource As Worksheet
    Dim wsDestination As Worksheet
    Dim sourceRange As Range
    Dim destinationRange As Range
    Dim lastRow As Long
    Dim i As Long
    
    ' 定义源表和目标表
    Set wsSource = Sheets("Sheet1") ' 源表
    Set wsDestination = Sheets("Sheet2") ' 目标表
    
    ' 获取源表数据范围
    lastRow = wsSource.Cells(wsSource.Rows.Count, 1).End(xlUp).Row
    Set sourceRange = wsSource.Range("A2:D" & lastRow) ' 假设数据从第2行开始
    
    ' 遍历源表数据,并合并去重
    For Each cell In sourceRange.Columns(1).Cells
        ' 判断身份证、姓名和科室都相同的行是否已存在于目标表中
        If Application.WorksheetFunction.CountIfs(wsDestination.Columns(1), cell.Value, wsDestination.Columns(2), cell.Offset(0, 1).Value, wsDestination.Columns(3), cell.Offset(0, 2).Value) = 0 Then
            ' 找到与当前行身份证、姓名和科室相同的行
            ' 注意:这里假设身份证在第1列,姓名在第2列,科室在第3列
            Set destinationRange = wsDestination.Cells(wsDestination.Rows.Count, 1).End(xlUp).Offset(1, 0)
            
            ' 复制行数据到目标表
            cell.Resize(, 4).Copy destinationRange
        End If
    Next cell
End Sub


我的个性签名

快速回复

目前不允许游客发表,请 登录 注册 后再发贴。