Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 641|回复: 4

[已解决]求助一条代码该 怎么写?

[复制链接]
发表于 2023-5-8 15:35 | 显示全部楼层 |阅读模式
1学分
在每一行中,B,E,H,K,N,Q这六列所对应的的单元格里

如果6个单元格中,没有相同的数据,那么删除这一行。
如果6个单元格中,有多项或多个相同的数据,另有1个不相同的数据,那么就把这1个不相同的数据清除。保留相同的数据
最佳答案
2023-5-8 15:35
本帖最后由 vitrel 于 2023-5-10 17:34 编辑

楼主,已按您3楼的新要求处理好,请测试。
网络很不稳定,附件无法上传,我直接上代码吧,反正也不复杂。

  1. Sub Test()
  2.     Dim D As Object, i&, j%, sTxt$, Key
  3.     Set D = CreateObject("Scripting.Dictionary")
  4.     For i = Cells(Rows.Count, 1).End(xlUp).Row To 2 Step -1
  5.         D.RemoveAll
  6.         For j = 2 To 17 Step 3
  7.             sTxt = Trim(Cells(i, j).Value)
  8.             D(sTxt) = D(sTxt) + 1
  9.         Next j
  10.         For Each Key In D.Keys
  11.             If Key = "" Or D(Key) = 1 Then D.Remove (Key)
  12.         Next Key
  13.         If D.Count = 0 Then
  14.             Rows(i).Delete
  15.         Else
  16.             For j = 2 To 17 Step 3
  17.                 If Not D.exists(Trim(Cells(i, j).Value)) Then Cells(i, j) = ""
  18.             Next j
  19.         End If
  20.     Next i
  21. End Sub
复制代码


求助.rar

30.95 KB, 下载次数: 4

最佳答案

查看完整内容

楼主,已按您3楼的新要求处理好,请测试。 网络很不稳定,附件无法上传,我直接上代码吧,反正也不复杂。
发表于 2023-5-8 15:35 | 显示全部楼层    本楼为最佳答案   
本帖最后由 vitrel 于 2023-5-10 17:34 编辑

楼主,已按您3楼的新要求处理好,请测试。
网络很不稳定,附件无法上传,我直接上代码吧,反正也不复杂。

  1. Sub Test()
  2.     Dim D As Object, i&, j%, sTxt$, Key
  3.     Set D = CreateObject("Scripting.Dictionary")
  4.     For i = Cells(Rows.Count, 1).End(xlUp).Row To 2 Step -1
  5.         D.RemoveAll
  6.         For j = 2 To 17 Step 3
  7.             sTxt = Trim(Cells(i, j).Value)
  8.             D(sTxt) = D(sTxt) + 1
  9.         Next j
  10.         For Each Key In D.Keys
  11.             If Key = "" Or D(Key) = 1 Then D.Remove (Key)
  12.         Next Key
  13.         If D.Count = 0 Then
  14.             Rows(i).Delete
  15.         Else
  16.             For j = 2 To 17 Step 3
  17.                 If Not D.exists(Trim(Cells(i, j).Value)) Then Cells(i, j) = ""
  18.             Next j
  19.         End If
  20.     Next i
  21. End Sub
复制代码


求助2.rar

38.66 KB, 下载次数: 2

回复

使用道具 举报

发表于 2023-5-10 09:57 | 显示全部楼层
楼主,您好!
你给出的判断标准并不全面,例如就没提到是忽略“空内容”,
以下是我根据您提供的判断标准对各行数据逐一判断和处理,
楼主您先看看以下判断和处理是否正确,以便下一步提供代码。

"第2行,“空空空输空空”,情况一,删除。
第3行,“空空空负空空”,情况一,删除。
第4行,“平空空胜空空”,情况一,删除。
第5行,“空空空胜空空”,情况一,删除。
第6行,“空空空空③空”,情况一,删除。
第7行,“小大大空大空”,情况二,变为“空大大空大空”。
第8行,“空空空热空空”,情况一,删除。
第9行,“空空空空空双”,情况一,删除。
第10行,“空空空空空空”,不处理。
第11行,“空空空空空空”,不处理。
第12行,“空空空赢赢输”,情况二,变为“空空空赢赢空”。
第13行,“空空空输空空”,情况一,删除。
第14行,“空空空输空空”,情况一,删除。
第15行,“平胜空胜胜负”,情况二,变为“空胜空胜胜空”。
第16行,“空空空负空空”,情况一,删除。
第17行,“空空空负空空”,情况一,删除。
第18行,“平空空胜胜胜”,情况二,变为“空空空胜胜胜”。
第19行,“空空空胜空空”,情况一,删除。
第20行,“空空③空③③”,不处理。
第21行,“空③③③空空”,不处理。
第22行,“空空空③③③”,不处理。
第23行,“空③空③空空”,不处理。
第24行,“空空⑤空空空”,情况一,删除。
第25行,“小大大大大大”,情况二,变为“空大大大大大”。
第26行,“空大大大空小”,情况二,变为“空大大大空空”。
第27行,“温空空空热热”,情况二,变为“空空空空热热”。
第28行,“空空空热空温”,情况一,删除。
第29行,“空空空热空空”,情况一,删除。
第30行,“空空空空③空”,情况一,删除。
第31行,“空Z空空空空”,情况一,删除。
第32行,“空空空空O空”,情况一,删除。
第33行,“双单单单双双”,不处理?
回复

使用道具 举报

 楼主| 发表于 2023-5-10 13:33 | 显示全部楼层
本帖最后由 ryoryo66 于 2023-5-10 13:37 编辑
vitrel 发表于 2023-5-10 09:57
楼主,您好!
你给出的判断标准并不全面,例如就没提到是忽略“空内容”,
以下是我根据您提供的判断标准 ...

对的,老师,就是这样的结果。全对
最多就是三种情况:
第一种:无相同的(不论是几种结果),删除
第二种,有相同的,并且有单独一个不相同的,就把那一个不相同的清除,保留相同的
第三种,有多组相同的,还是把单独不相同的清除,保留多组相同的。
回复

使用道具 举报

 楼主| 发表于 2023-5-11 20:05 | 显示全部楼层
vitrel 发表于 2023-5-10 17:31
楼主,已按您3楼的新要求处理好,请测试。
网络很不稳定,附件无法上传,我直接上代码吧,反正也不复杂。
...

谢谢老师!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-4-28 05:54 , Processed in 0.195442 second(s), 9 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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