Excel精英培训网

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

[已解决]请高手帮助

[复制链接]
发表于 2012-7-27 08:58 | 显示全部楼层 |阅读模式
请高手解答.zip (11.44 KB, 下载次数: 50)
excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
发表于 2012-7-27 11:42 | 显示全部楼层
本帖最后由 suye1010 于 2012-7-27 11:43 编辑
  1. Sub test()
  2. Dim i, j, k, l, d
  3. Set d = CreateObject("scripting.dictionary")

  4. For i = 9 To Application.InputBox("请选择数据区域", "数据源", , , , , , 8).Rows.Count
  5.     For k = i - 1 To 1 Step -1
  6.         For l = 6 To 1 Step -1
  7.             If d.Count < 4 Then
  8.                 If Not d.exists(Cells(k, l).Value) And Cells(k, l) <> "" Then d(Cells(k, l).Value) = Cells(k, l).Value
  9.             Else
  10.                 Exit For
  11.             End If
  12.         Next l
  13.     Next k
  14.     For j = 1 To 6
  15.         If Cells(i, j) <> "" And Not d.exists(Cells(i, j).Value) Then Cells(i, j).Interior.ColorIndex = 4
  16.     Next j
  17.     d.RemoveAll
  18. Next i
  19. End Sub
复制代码
回复

使用道具 举报

 楼主| 发表于 2012-7-27 17:10 | 显示全部楼层
suye1010 发表于 2012-7-27 11:42

非常感谢你的帮助,不管对不对,也是由衷感谢,但我没有遇到这个情况,请你告诉我具体操作方法,以便验证,不好意思,我的知识贫乏。
回复

使用道具 举报

发表于 2012-7-27 20:50 | 显示全部楼层    本楼为最佳答案   
喜欢电子表格 发表于 2012-7-27 17:10
非常感谢你的帮助,不管对不对,也是由衷感谢,但我没有遇到这个情况,请你告诉我具体操作方法,以便验证 ...

请高手解答.zip (19.48 KB, 下载次数: 7)
回复

使用道具 举报

 楼主| 发表于 2012-7-30 12:47 | 显示全部楼层
本帖最后由 喜欢电子表格 于 2012-7-30 12:52 编辑
suye1010 发表于 2012-7-27 20:50
看附件吧……


这几天忙于其他,没有顾上看版块,suye1010老师,谢谢你的解答,结果非常正确,再次表示感谢,现在,有个问题需要劳驾:把你的内容照搬下来,我自己能不能复制代码这个过程,这个过程叫什么名称,是不是平常说的vba什么的?
回复

使用道具 举报

 楼主| 发表于 2012-7-30 15:22 | 显示全部楼层
suye1010 发表于 2012-7-27 20:50
看附件吧……

请高手解答1.zip (41.28 KB, 下载次数: 1)
回复

使用道具 举报

发表于 2012-7-30 16:02 | 显示全部楼层
喜欢电子表格 发表于 2012-7-30 15:22
请你再次帮忙修改一下,非常感谢老师的帮助。
  1. Sub test()
  2. Dim i, j, k, l, d
  3. Set d = CreateObject("scripting.dictionary")

  4. For i = 9 To Application.InputBox("请选择待处理数据区域,从第一行开始到待分析数据末尾", "数据源", , , , , , 8).Rows.Count
  5.     For k = i - 1 To 1 Step -1
  6.         If d.Count < 4 Then
  7.             For l = 6 To 1 Step -1
  8.                 If Not d.exists(Cells(k, l).Value) And Cells(k, l) <> "" Then d(Cells(k, l).Value) = Cells(k, l).Value

  9.             Next l
  10.         Else
  11.             Exit For
  12.         End If
  13.     Next k
  14.     For j = 1 To 6
  15.         If Cells(i, j) <> "" And Not d.exists(Cells(i, j).Value) Then Cells(i, j).Interior.ColorIndex = 4
  16.     Next j
  17.     d.RemoveAll
  18. Next i
  19. End Sub
复制代码
请高手解答1.zip (41.33 KB, 下载次数: 7)
回复

使用道具 举报

 楼主| 发表于 2012-7-30 17:05 | 显示全部楼层
suye1010 发表于 2012-7-30 16:02

再一次表示敬意--------------------------------------------------------
回复

使用道具 举报

 楼主| 发表于 2012-8-2 18:12 | 显示全部楼层
suye1010 发表于 2012-7-30 16:02

请老师修改.zip (37.79 KB, 下载次数: 1)
回复

使用道具 举报

发表于 2012-8-3 09:41 | 显示全部楼层
  1. Sub test()
  2. Dim i, j, k, l, d, rng As Range
  3. Set rng = Application.InputBox("请选择待处理数据区域", "数据源", , , , , , 8)
  4. If rng Is Nothing Then Exit Sub
  5. rng.Interior.ColorIndex = 0
  6. Set d = CreateObject("scripting.dictionary")
  7. For i = rng.Row To rng.Rows.Count + rng.Row - 1
  8.     For k = i - 1 To 1 Step -1
  9.         If d.Count < 4 Then
  10.             For l = 6 To 1 Step -1
  11.                 If Not d.exists(Cells(k, l).Value) And Cells(k, l) <> 0 Then d(Cells(k, l).Value) = Cells(k, l).Value

  12.             Next l
  13.         Else
  14.             Exit For
  15.         End If
  16.     Next k
  17.     For j = 1 To 6
  18.         If Cells(i, j) <> 0 And Not d.exists(Cells(i, j).Value) Then Cells(i, j).Interior.ColorIndex = 4
  19.     Next j
  20.     d.RemoveAll
  21. Next i
  22. End Sub
复制代码
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-29 18:02 , Processed in 0.391676 second(s), 9 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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