设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

返回列表 发新帖
查看: 2209|回复: 5
打印 上一主题 下一主题

将一组数中最大三个值所在单元格填充红色

[复制链接]
跳转到指定楼层
1#
发表于 2016-5-12 11:25:10 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
如图1行3行分别为两组数据,如何用VBA进行编写 采用Large函数选出最大的三个值所对应的单个单元,并将单元格填充为红色?

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
2#
 楼主| 发表于 2016-5-12 11:35:56 | 只看该作者
相同数字也计算在内,如 67 ,55, 89, 43 ,98 ,43 ,90 ,34 ,65 , 90
头三个最大数是98 90 90,则将这三个数所在单元格填充红色

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
3#
发表于 2016-5-12 15:09:01 | 只看该作者
条件格式

如果是2003班则需要写公式

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
4#
 楼主| 发表于 2016-5-12 20:12:54 | 只看该作者
roych 发表于 2016-5-12 15:09
条件格式

如果是2003班则需要写公式

谢谢解答!
如果采用VBA代码呢?因为条件格式有一定的局限性(或许有其他的方法而我不知道)。
采用条件格式会出现图中上面情况,它会将相同的数值都填充,三组最大值全都填充了
需要达成的为:无论有几个相同的最大值,只让它显示三个最大的填充,而其余的相同值不填充。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
5#
发表于 2016-5-13 10:29:40 | 只看该作者
lanshijitian 发表于 2016-5-12 20:12
谢谢解答!
如果采用VBA代码呢?因为条件格式有一定的局限性(或许有其他的方法而我不知道)。
采用条 ...

那怎么判断哪三个是最大的?这又没有排序什么的。
6#
 楼主| 发表于 2016-5-17 09:12:15 | 只看该作者
经过几天尝试,写了一组代码,请各位老师看看,参考附
  1. Public j, i

  2. Private Sub 刷新_Click()
  3. Range("A1:M1").Select
  4.     With Selection.Interior
  5.         .Pattern = xlSolid
  6.         .PatternColorIndex = xlAutomatic
  7.         .ThemeColor = xlThemeColorDark1
  8.         .TintAndShade = 0
  9.         .PatternTintAndShade = 0
  10.     End With                               '将数值区填充恢复无色
  11. For x = 1 To 13
  12.    Cells(1, x) = Application.WorksheetFunction.RandBetween(1, 100)
  13. Next
  14. End Sub

  15. Private Sub 显示3个最大值_Click()
  16.   j = 0
  17.   i = 0
  18.     arr = Range(Cells(1, 1), Cells(1, 13))
  19.     A = Application.WorksheetFunction.Large(arr, 1)   'A B C 为每行最大三个
  20.     B = Application.WorksheetFunction.Large(arr, 2)
  21.     C = Application.WorksheetFunction.Large(arr, 3)
  22.     If A > B Then
  23.         Call XH(A)
  24.         Call XH(B)
  25.          If B > C Then
  26.            Call XH(C)
  27.          End If
  28.     Else
  29.         Call XH(A)
  30.         If B > C Then
  31.            Call XH(C)
  32.         End If
  33.     End If
  34. End Sub
  35. Sub XH(A)                 '最大三个数值填充红色
  36. For y = 1 To 13
  37.      If j < 3 Then
  38.         If Cells(1, y) = A Then
  39.            Cells(1, y).Select
  40.            With Selection.Interior
  41.               .Pattern = xlSolid
  42.               .PatternColorIndex = xlAutomatic
  43.               .Color = 255
  44.               .TintAndShade = 0
  45.               .PatternTintAndShade = 0
  46.            End With
  47.            j = j + 1
  48.         End If
  49.       End If
  50. Next
  51. End Sub
复制代码

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

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

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-4-29 01:35 , Processed in 0.078193 second(s), 30 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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