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

Excel宏编程,给出2列进行去重合并Sub去重合并()arr=Worksheets(“sheet1”).Range(“D1”).Clear’选择D列作为存储列,保存最后去重合并的值arr=Worksheets(“sheet1”).UsedRangeDimARowAsLong’A列的行数DimBRowAsLong’B列的行数ARow=Sheet1.Range(“A”&Rows.Count).End(xlUp).Row’不带空格的行数BRow=Sheet1.Range..

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

在这里插入图片描述
在这里插入图片描述

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.net/141782.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 用Excel处理笛卡尔积

    用Excel处理笛卡尔积    工作中遇到需要处理笛卡尔积的需求,用数据库只需把需要做笛卡尔积的各列进行外链接就可以了,想到Excel应该可以处理这样的需求,就百度学习了一下,但还是看不太懂,下面只是依葫芦画瓢做了一遍,记录一下。1、构建两列数据,如下图:2、构建D列辅助列,E列为用index函数处理A列后的数据,每个值的重复次数为B列的数值行数。3、用index()函数处理B列:…

    2022年7月27日
    119
  • java的输入输出格式

    java的输入输出格式不是特别完整和齐全,自己的一些小感悟,希望能帮助大家。对新手很友好,哈哈哈。输入:Scannerin=newScanner(System.in);新创建一个输入的Scanner对象,然后赋值给in,这个作用就是获取控制台的输入!!!in.nextInt()表示读入一个整数inta;表示定义一个变量a=in.nextInt();表示读入了一个数,把右边输入的值赋值给a。这里注意有一些规则,我们可以看到后面的类型名称首字母大写,大家可以记住这个小tip,养成好的代码风

    2022年7月9日
    15
  • 普通用户免输密码切换root「建议收藏」

    普通用户免输密码切换root

    2022年2月22日
    62
  • Elasticsearch教程-从入门到精通(转载)

    Elasticsearch教程-从入门到精通(转载)

    2021年11月24日
    35
  • java万年历算法_寿星万年历—java算法实现

    寿星万年历是我在网上见到的一份极高高精度的万年历,其采用先进的算法实现,其精度堪比刘安国教授为中国科学院国家授时中心制作的日梭万年历。但网络上只有javascript版本。于是自己将其翻译为java程序,并公布于此,方便大家使用。关于寿星万年历相关简要描述如下:寿星万年历是一款采用现代天文算法制作的农历历算程序,含有公历与回历信息,可以很方便的进行公、农、回三历之间的转换。提供公元-4712年到公…

    2022年4月7日
    58
  • Java 解析 XML[通俗易懂]

    Java 解析 XML[通俗易懂]Java解析XML标签:Java基础XML解析技术有两种DOMSAXDOM方式根据XML的层级结构在内存中分配一个树形结构,把XML的标签,属性和文本等元素都封装成树的节点对象优点:便于实现增删改查缺点:XML文件过大可能造成内存溢出SAX方式采用事件驱动模型边读边解析:从上到下一行行解析,解析到某一元素,调用相应解析方法优点:不会造成内存溢出,缺点:

    2022年6月4日
    33

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号