Excel精英培训网

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

[已解决]求助:如何寻找相同值并标示?

[复制链接]
发表于 2012-1-15 18:49 | 显示全部楼层 |阅读模式
是个非常麻烦的问题:要找出相同的数值组合,行列还不固定.
哪位老师帮忙看看能否实现?说明详见附件.多谢了!
寻找相同值.rar (7.71 KB, 下载次数: 23)
发表于 2012-1-15 20:04 | 显示全部楼层
  1. Sub aa()
  2.     Dim d As New Dictionary
  3.     Dim arr, i As Long, j As Long
  4.     Dim Ro As Long, Co As Long
  5.     Application.ScreenUpdating = False
  6.     arr = Range(Cells(2, "F"), Cells([F65536].End(xlUp).Row, [F2].End(xlToRight)))
  7.     For i = 1 To UBound(arr) Step 3
  8.         For j = 1 To UBound(arr, 2)
  9.             If Not d.Exists(arr(i, j) & arr(i + 1, j)) Then
  10.                 d.Add arr(i, j) & arr(i + 1, j), Array(i, j)
  11.             Else
  12.                 Ro = d(arr(i, j) & arr(i + 1, j))(0)
  13.                 Co = d(arr(i, j) & arr(i + 1, j))(1)
  14.                 Range(Cells(Ro + 1, Co + 5), Cells(Ro + 2, Co + 5)).Font.Color = -16776961
  15.                 Range(Cells(i + 1, j + 5), Cells(i + 2, j + 5)).Font.Color = -16776961
  16.             End If
  17.         Next j
  18.     Next i
  19.     Application.ScreenUpdating = True
  20. End Sub
复制代码
回复

使用道具 举报

发表于 2012-1-15 20:06 | 显示全部楼层
附件: 寻找相同值-sunjing.rar (12.67 KB, 下载次数: 25)
回复

使用道具 举报

发表于 2012-1-15 20:20 | 显示全部楼层
    认真向你学习,谢谢!
回复

使用道具 举报

 楼主| 发表于 2012-1-15 21:47 | 显示全部楼层
sunjing-zxl 发表于 2012-1-15 20:06
附件:
行列都可以扩展,但是起点必须E2开始

感谢老师.你实在是强,好像就没有能难的住你的.
还有2个小问题请教:数值只能是二位数的是吗?如果数值为0-9的一位数,只能对F和G二列产生作用.
你指的起点必须从E2开始,有点不明白.不是F2?

回复

使用道具 举报

发表于 2012-1-15 21:50 | 显示全部楼层
对是F2我写错了。
如果你的数字位数不定程序还需要修改一点点
回复

使用道具 举报

发表于 2012-1-15 21:55 | 显示全部楼层    本楼为最佳答案   
本帖最后由 sunjing-zxl 于 2012-1-16 08:05 编辑
  1. Sub bb()
  2.     Dim d As New Dictionary
  3.     Dim arr, i As Long, j As Long
  4.     Dim Ro As Long, Co As Long
  5.     Application.ScreenUpdating = False
  6.     arr = Range(Cells(2, "F"), Cells([F65536].End(xlUp).Row, [F2].End(xlToRight).column))
  7.     For i = 1 To UBound(arr) Step 3
  8.         For j = 1 To UBound(arr, 2)
  9.             If Not d.Exists(arr(i, j) & vbTab & arr(i + 1, j)) Then
  10.                 d.Add arr(i, j) & vbTab & arr(i + 1, j), Array(i, j)
  11.             Else
  12.                 Ro = d(arr(i, j) & vbTab & arr(i + 1, j))(0)
  13.                 Co = d(arr(i, j) & vbTab & arr(i + 1, j))(1)
  14.                 Range(Cells(Ro + 1, Co + 5), Cells(Ro + 2, Co + 5)).Font.Color = -16776961
  15.                 Range(Cells(i + 1, j + 5), Cells(i + 2, j + 5)).Font.Color = -16776961
  16.             End If
  17.         Next j
  18.     Next i
  19.     Application.ScreenUpdating = True
  20. End Sub
复制代码
回复

使用道具 举报

 楼主| 发表于 2012-1-15 22:13 | 显示全部楼层
sunjing-zxl 发表于 2012-1-15 21:55

是这样:如果是选择性粘粘的数值,只对二列产生作用.
是手动输入的就没有问题.
回复

使用道具 举报

发表于 2012-1-15 22:16 | 显示全部楼层
这个情况不应该存在的                  
回复

使用道具 举报

 楼主| 发表于 2012-1-15 22:20 | 显示全部楼层
sunjing-zxl 发表于 2012-1-15 22:16
这个情况不应该存在的

那我再去试试,一再麻烦你不好意思的很.真的很感谢你!
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-16 20:56 , Processed in 0.296571 second(s), 10 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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