By Mejias

业务要求如下:

Keywords_record为原始表,LIST_TO_UPDATE开始时为空白表。

需要实现复制粘贴“KEYWORDS_RECORD”表到“LIST_TO_UPDATE”表,在第二张表标记B列与C列重复的值单元格为红色,C列与B列单元格重复值为黄色。

然后,再删除B列标为红色的值(与C列重复的值)并且需要删除C列(数据库复制下来的对比数据),得到需上传的UNIQUE的数据。

这里写了两个VBA代码,关联到两个按钮。实现效果如下:

点击上面的按钮,实现复制第一张表到第二张表,并且B,C两列重复值标色。

在得出的第二张表点击“UNIQUE_LIST”按钮,删除B列标色单元,并删除C列。

代码和注释如下:(详细解释在注释里说明哈哈)

Sub MARK_DUPLICATED()
’关联到第一个按钮Dim mybook As WorkbookSet mybook = Workbooks("ECN_Keywords.xlsm")Dim orig, target As WorksheetSet orig = Sheets("KEYWORDS_RECORD")Set target = Sheets("LIST_TO_UPDATE")'copy the original list to target listorig.Range("A:J").Copy target.Range("A:J")'get the row count in used sheet(获取表格所用行数)Dim i, m As Integeri = target.Range("b1").End(xlDown).Rowm = target.Range("C1").End(xlDown).Row'note:i=target.usedrange.rows.count可找出最大列表范围,但是当一列某一行有空值时读取那个单元格会报错'high light the duplicated values in column B&CDim b, cDim j As IntegerDim k As IntegerFor j = 2 To ib = target.Range("B" + CStr(j))Debug.Print (b)For k = 2 To mc = target.Range("C" + CStr(k))If b = c Thentarget.Range("b" & j).Interior.Color = 6335 'B列与C列重复值标为红色target.Range("c" & k).Interior.Color = 65535 'C列与B列重复值标为黄色End IfNextNexttarget.Range("B6").EntireRow.deleteEnd SubSub Delete_Red_And_C_Column()Dim mybook As WorkbookSet mybook = Workbooks("ECN_Keywords.xlsm")Dim orig As WorksheetSet orig = Sheets("KEYWORDS_RECORD")Dim target As WorksheetSet target = Sheets("LIST_TO_UPDATE")'Delete the cells marked as red color(duplicated with c column)Dim i, j, m As Integeri = target.Range("B1").End(xlDown).Row + 1j = 2Dim kline1:i = i - 1'由于删除整行后总行数会减少一行,所以和后面GO TO 语句搭配,跳出循环重新循环条件Do While j <= ik = target.Range("B" & j)If target.Range("B" & j).Interior.Color = 6335 Then'Note:if k.Interior.Color = 6335 Then(将报错,这里需要使用属性需要还原完整描述)target.Range("B" & j).EntireRow.delete'Note:The same as the front. k = target.Range("B" & j ) can only give the value of the cell to the variables.GoTo line1'使用GO TO语句结合跳出循环重新再循环,因为这里删除一整行,B列的总行数减少一行,同时要重新从删除的行号再次开始循环,保证总行数动态变化的情况下循环所有行,而不会导致超出表格报错的情况出现End Ifj = j + 1Loop'delete C column to get the unique listtarget.Range("C:C").delete SHIFT:=xlToLeftDebug.Print "finish"'target.Range("B6").EntireRow.deleteEnd Sub

VBA批量标色删除两列重复值相关推荐

  1. Excel如何标出两列重复值

    第一步,选中要比对的两列 第二步;选择开始–>条件格式 第三步: 第四步

  2. excel 如何去除两列重复项

    一 .诉求: 当前excel 有A B两列数据,想要提取出2列数据有重复. 二.操作: 1 将两列数据拷贝出来,避免原始数据被修改 2 分别去除两列的重复项,保证每一列都是数据唯一 选中一列,点击删除 ...

  3. pandas计算dataframe两列数据值相等的行号、取出DataFrame中两列值相等的行号

    pandas计算dataframe两列数据值相等的行号.取出DataFrame中两列值相等的行号 目录 pandas计算dataframe两列数据值相等的行号.取出DataFrame中两列值相等的行号

  4. python读取前两列数据对比_使用Python的Dataframe取两列时间值相差一年的所有行方法...

    在使用Python处理数据时,经常需要对数据筛选. 这是在对时间筛选时,判断两列时间是否相差一年,如果是,则返回符合条件的所有列. data原始数据: data[map(lambda x:dateti ...

  5. python提取两列数据对比_使用Python的Dataframe取两列时间值相差一年的所有行方法...

    在使用Python处理数据时,经常需要对数据筛选. 这是在对时间筛选时,判断两列时间是否相差一年,如果是,则返回符合条件的所有列. data原始数据: data[map(lambda x:dateti ...

  6. java excel中删除两列_Java 插入、隐藏/显示、删除Excel行或列

    概述 操作Excel工作表时,对表格中的行或列数据可执行,包括插入.隐藏.显示.删除等在内的多种操作需求,本文将通过Java代码示例演示每种操作的具体实现方法.文中方法使用了Java Excel类库( ...

  7. MySQL内核月报 2015.01-MySQL · 捉虫动态· InnoDB自增列重复值问题

    问题重现 先从问题入手,重现下这个bug 这里我们关闭mysql,再启动mysql,然后再插入一条数据 我们看到插入了(2,2),而如果我没有重启,插入同样数据我们得到的应该是(4,2). 上面的测试 ...

  8. python去除数组缺失值_动态数组的应用,VBA中如何利用动态数组去除重复值的第二讲...

    大家好,我们今日继续讲解VBA代码解决方案的第62讲内容:在VBA中如何使用动态数组,以及利用动态数组去除重复值的方法第二部分.在上一讲中,我们讲了知识点的利用,其一是Filter函数,其二是ReDi ...

  9. 实现删除列表的重复值的功能

    ​​​​​​两种方法实现删除列表中重复数据的功能_茶饼七怪的博客-CSDN博客 --正序删除重复元素 --集合性质 对于昨天删除方法进行补充: 方法1: li_one = [1, 2, 1, 2, 3 ...

  10. 删除列表中重复值,重复值保留一个

    #删除列表中的重复的值,保留重复值的第一个值 s=[1,2,3,2,9,2,4,8,3,5,5,6,3,8,3,6,7,8] print(s) #print(l.count(9)) i=0 while ...

最新文章

  1. 为什么 Git把 SVN拍在了沙滩上!
  2. MybatisPlus_进阶
  3. 如何对Windows Server 2008上的ARP缓存进行管理
  4. 如何成为优秀的科学家
  5. 【BZOJ3672】[Noi2014]购票 树分治+斜率优化
  6. Name or service not know
  7. Python+OpenCV:直方图(Histograms)
  8. matplotlib-legend 位置属性 loc 使用
  9. 机器学习基础算法11-Logistic回归-ROC和AUC分类模型评估-实例
  10. 关于button onclick a href 分析
  11. python全栈之路—十分钟搞定面向对象-类的结构-类的空间问题,建议收藏
  12. 脉冲宽度调制pdm_脉冲宽度调制,脉宽调制
  13. oracle 误删数据恢复
  14. Linux-CentOS 安装配置swftools
  15. [Web前端] 子元素设置高度为100%, 却没有与父元素对齐高度.
  16. SIFT Flow 笔记
  17. 数据结构与算法(系列文章一)
  18. vlad用python实现_HF-Net(一)基于NetVLAD的global descriptor的特征提取
  19. js漂浮广告代码(简洁!)
  20. SpringBoot菜鸟教程(一)

热门文章

  1. 计算机单位大小知识,计算机存储设备及存储容量单位Byte,KB,MB,GB,TB的介绍
  2. 关于CSDN原力计划活动说明
  3. Golang go-svc包源码分析
  4. php随机分配班级座位,班级座位编排的几种模式
  5. 入门级概述光学相干层析(OCT)原理
  6. 水星无线网卡代理服务器端口,水星(Mercury)MW150U 3.0/4.0无线网卡AP模式设置
  7. 文件服务器杀毒软件推荐,服务器上装什么杀毒软件好?
  8. Mysql调优(updating~)
  9. oracle加减乘除怎么写,加减乘除怎么写-加减乘除的名称怎么写-加减乘除的笔画怎么写...
  10. JAVA 之父高斯林:廉颇老矣,尚能饭否?