前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Excel宏编程,给出2列进行去重合并

Excel宏编程,给出2列进行去重合并

作者头像
全栈程序员站长
发布2022-09-01 16:06:22
8160
发布2022-09-01 16:06:22
举报

大家好,又见面了,我是你们的朋友全栈君。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
代码语言:javascript
复制
Sub 去重合并()
arr = Worksheets("sheet1").Range("D1").Clear  '选择D列作为存储列,保存最后去重合并的值
arr = Worksheets("sheet1").UsedRange

Dim ARow As Long  'A列的行数
Dim BRow As Long  'B列的行数
ARow = Sheet1.Range("A" & Rows.Count).End(xlUp).Row    '不带空格的行数
BRow = Sheet1.Range("B" & Rows.Count).End(xlUp).Row
Set d = CreateObject("Scripting.Dictionary")   '设置个字典类型的容器
ReDim brr(1 To ARow + BRow, 1)          '设置个1维数组,1列,行数最大为A和B行数之和,不包括空格

For n = 2 To ARow           '循环A列,从第二行开始,看你需要从哪个行开始
s = arr(n, 1)               '将从第二行开始的数据全部塞入s里
If d.Exists(s) Or s = "" Then  'd(s)是个计数器,如果s这个值不在字典d里,说明不重复,就加入brr()第一列中,如果单元格是空格就跳过
    '什么也不做
  Else
    j = j + 1
    d(s) = 1
    brr(j, 1) = s
End If
Next

For n = 2 To BRow           '循环B列数据,从第二行开始,看你需要从哪个行开始
s = arr(n, 2)               '将从第二行开始的数据全部塞入s里
If d.Exists(s) Or s = "" Then 'd(s)是个计数器,如果s这个值不在字典d里,说明不重复,就加入brr()第一列中,如果单元格是空格就跳过
'什么也不做
  Else
    j = j + 1
    d(s) = 1
    brr(j, 1) = s
    End If
Next
Worksheets("sheet1").[D2].Resize(UBound(brr), 1) = Application.Index(brr, 0, 2)
End Sub

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/141782.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022年5月2,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档