设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

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

归类填充颜色,不一样的填充不一样的底纹

[复制链接]
1#
发表于 2016-1-5 16:22:25 | 显示全部楼层
本帖最后由 roych 于 2016-1-7 10:08 编辑

写得有点啰嗦,有时间再优化呗。
  1. Sub test()
  2.     Dim i As Long, j As Long
  3.     Dim k As Range, m As Range
  4.     '预填充
  5.     Set k = Sheet1.Range("A3")
  6.     k.Interior.Color = vbYellow
  7.     For j = 0 To 1
  8.         For i = 1 To Sheet1.Range("A2").End(xlDown).Row - 2
  9.             Set m = Sheet1.Range("A2").Offset(i, j)
  10.             '值相同则填充上一个单元格的颜色【即黄色】
  11.             If m.Value = k.Value Then
  12.                 m.Interior.Color = k.Interior.Color
  13.             Else
  14.                '如果单元格不同,则预填充绿色
  15.                 m.Interior.Color = RGB(0, 192, 0)
  16.                '如果跟上一个单元格颜色一致,则改为黄色
  17.                 If m.Interior.Color = k.Interior.Color Then
  18.                     m.Interior.Color = vbYellow
  19.                 End If
  20.             End If
  21.                 Set k = m
  22.         Next
  23.     Next
  24. End Sub
复制代码


详见附件。

本帖子中包含更多资源

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

x
2#
发表于 2016-1-7 10:09:31 | 显示全部楼层
zhuangyongjin 发表于 2016-1-6 17:15
谢谢您
代码测试了下,一直运行过程,颜色会一直改变

附件已更新,请自行下载。
3#
发表于 2016-1-8 08:43:19 | 显示全部楼层
zhuangyongjin 发表于 2016-1-8 07:40
谢谢您,您的方法可行
不过,里面有一句代码我不理解                m.Interior.Color = RGB(0, 192, 0 ...

请留意 set k=m
4#
发表于 2016-1-9 09:21:05 | 显示全部楼层
zhuangyongjin 发表于 2016-1-9 07:36
谢谢你,现在明白了。
现在这个表格,可以弄成黄色和绿色两种颜色,如果我想要弄成黄色、绿色、蓝色三种 ...

类似的,只是需要多定义一些变量罢了。定义数组可能会方便一些。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-5-9 19:00 , Processed in 0.096845 second(s), 27 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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