VBA批量标色删除两列重复值
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批量标色删除两列重复值相关推荐
- Excel如何标出两列重复值
第一步,选中要比对的两列 第二步;选择开始–>条件格式 第三步: 第四步
- excel 如何去除两列重复项
一 .诉求: 当前excel 有A B两列数据,想要提取出2列数据有重复. 二.操作: 1 将两列数据拷贝出来,避免原始数据被修改 2 分别去除两列的重复项,保证每一列都是数据唯一 选中一列,点击删除 ...
- pandas计算dataframe两列数据值相等的行号、取出DataFrame中两列值相等的行号
pandas计算dataframe两列数据值相等的行号.取出DataFrame中两列值相等的行号 目录 pandas计算dataframe两列数据值相等的行号.取出DataFrame中两列值相等的行号
- python读取前两列数据对比_使用Python的Dataframe取两列时间值相差一年的所有行方法...
在使用Python处理数据时,经常需要对数据筛选. 这是在对时间筛选时,判断两列时间是否相差一年,如果是,则返回符合条件的所有列. data原始数据: data[map(lambda x:dateti ...
- python提取两列数据对比_使用Python的Dataframe取两列时间值相差一年的所有行方法...
在使用Python处理数据时,经常需要对数据筛选. 这是在对时间筛选时,判断两列时间是否相差一年,如果是,则返回符合条件的所有列. data原始数据: data[map(lambda x:dateti ...
- java excel中删除两列_Java 插入、隐藏/显示、删除Excel行或列
概述 操作Excel工作表时,对表格中的行或列数据可执行,包括插入.隐藏.显示.删除等在内的多种操作需求,本文将通过Java代码示例演示每种操作的具体实现方法.文中方法使用了Java Excel类库( ...
- MySQL内核月报 2015.01-MySQL · 捉虫动态· InnoDB自增列重复值问题
问题重现 先从问题入手,重现下这个bug 这里我们关闭mysql,再启动mysql,然后再插入一条数据 我们看到插入了(2,2),而如果我没有重启,插入同样数据我们得到的应该是(4,2). 上面的测试 ...
- python去除数组缺失值_动态数组的应用,VBA中如何利用动态数组去除重复值的第二讲...
大家好,我们今日继续讲解VBA代码解决方案的第62讲内容:在VBA中如何使用动态数组,以及利用动态数组去除重复值的方法第二部分.在上一讲中,我们讲了知识点的利用,其一是Filter函数,其二是ReDi ...
- 实现删除列表的重复值的功能
两种方法实现删除列表中重复数据的功能_茶饼七怪的博客-CSDN博客 --正序删除重复元素 --集合性质 对于昨天删除方法进行补充: 方法1: li_one = [1, 2, 1, 2, 3 ...
- 删除列表中重复值,重复值保留一个
#删除列表中的重复的值,保留重复值的第一个值 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 ...
最新文章
- 为什么 Git把 SVN拍在了沙滩上!
- MybatisPlus_进阶
- 如何对Windows Server 2008上的ARP缓存进行管理
- 如何成为优秀的科学家
- 【BZOJ3672】[Noi2014]购票 树分治+斜率优化
- Name or service not know
- Python+OpenCV:直方图(Histograms)
- matplotlib-legend 位置属性 loc 使用
- 机器学习基础算法11-Logistic回归-ROC和AUC分类模型评估-实例
- 关于button onclick a href 分析
- python全栈之路—十分钟搞定面向对象-类的结构-类的空间问题,建议收藏
- 脉冲宽度调制pdm_脉冲宽度调制,脉宽调制
- oracle 误删数据恢复
- Linux-CentOS 安装配置swftools
- [Web前端] 子元素设置高度为100%, 却没有与父元素对齐高度.
- SIFT Flow 笔记
- 数据结构与算法(系列文章一)
- vlad用python实现_HF-Net(一)基于NetVLAD的global descriptor的特征提取
- js漂浮广告代码(简洁!)
- SpringBoot菜鸟教程(一)
热门文章
- 计算机单位大小知识,计算机存储设备及存储容量单位Byte,KB,MB,GB,TB的介绍
- 关于CSDN原力计划活动说明
- Golang go-svc包源码分析
- php随机分配班级座位,班级座位编排的几种模式
- 入门级概述光学相干层析(OCT)原理
- 水星无线网卡代理服务器端口,水星(Mercury)MW150U 3.0/4.0无线网卡AP模式设置
- 文件服务器杀毒软件推荐,服务器上装什么杀毒软件好?
- Mysql调优(updating~)
- oracle加减乘除怎么写,加减乘除怎么写-加减乘除的名称怎么写-加减乘除的笔画怎么写...
- JAVA 之父高斯林:廉颇老矣,尚能饭否?