ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 3614|回复: 19

[求助] 删除2列有重复内容的行及填充条件格式颜色

[复制链接]

TA的精华主题

TA的得分主题

发表于 2018-9-30 10:17 | 显示全部楼层 |阅读模式
Hi,我有2个问题,问题如下:

第一个就是删除2列之间有重复内容的行。如第一个表格,在A列中,若有内容跟B列相同的话,那么就会删除A列与B列含有相同内容的行,最终结果请查看工作表“结果”。如截图。

第二个问题是,我在A列做了一个条件格式,有颜色那些单元格是由于条件格式原因才显示的,而不是单元格填充的颜色。我想要条件格式显示的颜色单元格也填充颜色,不用手动的一个个点颜色单元格来填充颜色。如截图。

望大神赐教,多谢

填充颜色.png
删除A列重复的内容1.png

删除重复内容.rar

12.94 KB, 下载次数: 8

TA的精华主题

TA的得分主题

发表于 2018-9-30 10:40 | 显示全部楼层
你这两个问题是不是有点相互矛盾,1->是删除重复;2->标记重复。执行了1,2怎么执行呢?
  1. 'http://club.excelhome.net/thread-1438311-1-1.html
  2. Sub Check_Duplicated()
  3. Dim Dic As Object
  4. Dim arr
  5. Dim Sk$
  6. Dim m
  7. Set Dic = CreateObject("Scripting.Dictionary")

  8. With Sheet1
  9.     'B列读入字典
  10.     For m = 3 To .Cells(65536, 2).End(xlUp).Row
  11.         Sk = .Cells(m, 2).Value
  12.         If Not Dic.Exists(Sk) Then Dic(Sk) = Dic(Sk) + 1
  13.     Next m
  14.     '检查A列值
  15.     For m = 3 To .Cells(65536, 1).End(xlUp).Row
  16.         Sk = .Cells(m, 1).Value
  17.         If Dic.Exists(Sk) Then
  18.             .Cells(m, 1) = ""
  19.             .Cells(m, 1).Interior.ColorIndex = 44
  20.         End If
  21.     Next m
  22. End With
  23. Debug.Print Timer
  24. End Sub
复制代码

删除重复内容.zip

19.3 KB, 下载次数: 2

TA的精华主题

TA的得分主题

发表于 2018-9-30 11:14 | 显示全部楼层
  1. Sub 删除()
  2. For i = 3 To 16
  3.     For ii = 3 To 11
  4.         If Cells(i, 1) = Cells(ii, 2) Then
  5.             Cells(i, 1) = ""
  6.         Exit For
  7.         End If
  8.     Next
  9. Next
  10. Columns(1).SpecialCells(xlCellTypeBlanks).EntireRow.Delete
  11. End Sub
复制代码

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-9-30 11:18 | 显示全部楼层
zhenghui13 发表于 2018-9-30 10:40
你这两个问题是不是有点相互矛盾,1->是删除重复;2->标记重复。执行了1,2怎么执行呢?

我是有2种要处理的表格,一个是删除重复的,一个是不删除重复的,但是要标记出来

TA的精华主题

TA的得分主题

发表于 2018-9-30 11:19 | 显示全部楼层
你那个条件格式的颜色我没看懂你想要的效果。你可以去掉条件格式里的函数公式,用VBA来实现填充。
  1. Sub 颜色()
  2. For i = 3 To 16
  3.     For ii = 3 To 11
  4.         If Cells(i, 1) = Cells(ii, 2) Then
  5.             Cells(i, 1).Interior.Color = 49407
  6.         Exit For
  7.         End If
  8.     Next
  9. Next
  10. End Sub
复制代码

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-9-30 11:22 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
zhenghui13 发表于 2018-9-30 10:40
你这两个问题是不是有点相互矛盾,1->是删除重复;2->标记重复。执行了1,2怎么执行呢?

我那2个表格“删除A列跟B列有重复内容的行”和”条件格式填充颜色”是完全没有关联的啊,我刚刚看了你的附件,怎么会有颜色的?你是不是把2个表格联系到一起了?

可能我表达的不够清晰,现在是2种表格处理的都不同的话,所以就应该有2个宏,我看到你那有1个宏而已?

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-9-30 11:28 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助

多谢,另外一个条件格式填充颜色的表格,你知道怎么写宏吗?多谢

TA的精华主题

TA的得分主题

发表于 2018-9-30 11:30 | 显示全部楼层
志65 发表于 2018-9-30 11:28
多谢,另外一个条件格式填充颜色的表格,你知道怎么写宏吗?多谢
  1. Sub 颜色()
  2. For i = 3 To 16
  3.     For ii = 3 To 11
  4.         If Cells(i, 1) = Cells(ii, 2) Then
  5.             Cells(i, 1).Interior.Color = 49407
  6.         Exit For
  7.         End If
  8.     Next
  9. Next
  10. End Sub
复制代码

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-9-30 13:20 | 显示全部楼层

我是要识别有条件格式显示有颜色才填充颜色的。因为这样我可能用到其他地方去下次我只需修改一下就能用到了。所以这里就不要识别A列跟B列是否有相同的就填充颜色,我要的结果是A列有条件格式显示颜色的就填充颜色。

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-9-30 13:29 | 显示全部楼层

下次都可以用在其他条件格式那,只有有条件格式有显示颜色的单元格就填充颜色
想要的结果.png
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2025-1-16 09:08 , Processed in 0.026456 second(s), 11 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表