Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
楼主: wszbd

[已解决]找相同的对应数!!!

[复制链接]
发表于 2013-8-21 08:48 | 显示全部楼层    本楼为最佳答案   
除去最后4列不好处理,前面的用比较笨的办法,直接用循环:
  1. Sub aa()
  2. Dim ar, Re
  3. Dim i As Integer, j As Integer, k As Integer, MaxRow As Integer
  4. Dim temp As Long
  5. Application.ScreenUpdating = False
  6. MaxRow = [C65536].End(3).Row
  7. ar = Range("C4:N" & MaxRow)
  8. ReDim Re(1 To UBound(ar), 1 To 12)
  9. For i = 2 To UBound(ar) Step 2
  10.     For j = 1 To 12
  11.         If InStr(ar(i - 1, j), ar(i, j)) Then
  12.                  Cells(i + 3, j + 2).Interior.Color = 255
  13.         End If
  14.     Next j
  15. Next i
  16. Application.ScreenUpdating = ture
  17. End Sub
复制代码
excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
回复

使用道具 举报

 楼主| 发表于 2013-8-21 10:37 | 显示全部楼层
CheryBTL 发表于 2013-8-21 08:48
除去最后4列不好处理,前面的用比较笨的办法,直接用循环:

最后四列真的不好做吗,还是希望老师抽时间给琢磨琢磨。。。

谢谢!!!
回复

使用道具 举报

发表于 2013-8-21 11:21 | 显示全部楼层
本帖最后由 CheryBTL 于 2013-8-21 14:02 编辑
wszbd 发表于 2013-8-21 10:37
最后四列真的不好做吗,还是希望老师抽时间给琢磨琢磨。。。

谢谢!!!

适用于后4列数据,增加一个循环即可:
  1. Sub aa()
  2. Dim ar, Re
  3. Dim i As Integer, j As Integer, k As Integer, MaxRow As Integer
  4. Application.ScreenUpdating = False
  5. MaxRow = [C65536].End(3).Row
  6. ar = Range("C4:R" & MaxRow)
  7. ReDim Re(1 To UBound(ar), 1 To 16)
  8. For i = 2 To UBound(ar) Step 2
  9.     For j = 1 To 16
  10.         For k = 0 To 9
  11.            If Application.IsNumber(Application.Find(k, ar(i, j))) Then
  12.                 If Application.IsNumber(Application.Find(k, ar(i - 1, j))) Then
  13.                         Cells(i + 3, j + 2).Interior.Color = 255
  14.                         Exit For
  15.                 End If
  16.             End If
  17.         Next k
  18.     Next j
  19. Next i
  20. Application.ScreenUpdating = ture
  21. End Sub
复制代码
有二句代码多余,删除了。
回复

使用道具 举报

发表于 2013-8-21 14:06 | 显示全部楼层
附件如下:

找相同的对应数.rar (12.64 KB, 下载次数: 7)
回复

使用道具 举报

 楼主| 发表于 2013-8-21 14:26 | 显示全部楼层
CheryBTL 发表于 2013-8-21 14:06
附件如下:

太谢谢你了,真不愧为高手!!!
回复

使用道具 举报

 楼主| 发表于 2013-8-21 14:26 | 显示全部楼层
回复

使用道具 举报

 楼主| 发表于 2013-8-21 17:01 | 显示全部楼层
CheryBTL 发表于 2013-8-21 14:06
附件如下:

能否再加个VBA:让奇行一个都没有红色单元格的显示为淡蓝色。就像 找相同的对应数.rar (10.36 KB, 下载次数: 3)
回复

使用道具 举报

 楼主| 发表于 2013-8-21 17:02 | 显示全部楼层
谢谢!!!
回复

使用道具 举报

发表于 2013-8-21 17:27 | 显示全部楼层
本帖最后由 CheryBTL 于 2013-8-24 08:05 编辑
wszbd 发表于 2013-8-21 17:01
能否再加个VBA:让奇行一个都没有红色单元格的显示为淡蓝色。就像

再增加了个条件来判断是否整行都没有符合条件的数据即可,至于具体的颜色,可以将65535改为想要的颜色即可。
  1. Sub aa()
  2. Dim ar
  3. Dim i As Integer, j As Integer, k As Integer, MaxRow As Integer, temp As Integer
  4. Application.ScreenUpdating = False
  5. MaxRow = [C65536].End(3).Row
  6. ar = Range("C4:R" & MaxRow)
  7. ReDim Re(1 To UBound(ar), 1 To 16)
  8. For i = 2 To UBound(ar) Step 2
  9.     For j = 1 To 16
  10.         temp = 1
  11.         For k = 0 To 9
  12.            If Application.IsNumber(Application.Find(k, ar(i, j))) Then
  13.                 If Application.IsNumber(Application.Find(k, ar(i - 1, j))) Then
  14.                         Cells(i + 3, j + 2).Interior.Color = 255
  15.                         temp = 0
  16.                         Exit For
  17.                 End If
  18.             End If
  19.         Next k
  20.     Next j
  21.     If temp = 1 Then Range("A" & i + 3 & ":R" & i + 3).Interior.Color = 65535
  22. Next i
  23. Application.ScreenUpdating = ture
  24. End Sub
复制代码
回复

使用道具 举报

 楼主| 发表于 2013-8-24 03:05 | 显示全部楼层
CheryBTL 发表于 2013-8-21 17:27
再增加了个条件来判断是否整行都没有符合条件的数据即可,至于具体的颜色,可以将65535改为想要的颜色即可 ...

老师:
不好意思,这两天出去了,没及时看你的回复。
这个程序有误差,好像把一部分红色的单元格变化了。
老师可以和上一个程序分开,另写一个程序。
这样我也好学习一下,太麻烦我看不懂。
谢谢!!!
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-10 05:17 , Processed in 0.443577 second(s), 8 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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