Excel精英培训网

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

[已解决]祝福帮助过我 帮助过别人的 老大们 好人好运 !根据两个条件自动填充颜色

[复制链接]
发表于 2016-6-12 19:29 | 显示全部楼层 |阅读模式
本帖最后由 neicezhanghao 于 2016-6-13 13:45 编辑

如题 如图 如附件 根据两个条件自动填充颜色  跪求跪求 谢谢 谢谢!!!!
感谢 老大们的 无私帮助!!!
最佳答案
2016-6-13 08:45
三种颜色,代码如下:
  1. Sub xx()
  2.     Dim rng As Range
  3.     Set rng = Sheet1.Range("A13:C35")
  4.     rng.Interior.ColorIndex = 0
  5.     If rng(1, 2) >= 3 And rng(1, 3) = "" Then rng(1, 1).Interior.Color = 255
  6.     If rng(2, 2) >= 3 And rng(2, 3) = "" Then
  7.         If rng(1, 2) >= 3 And rng(1, 3) = "" Then
  8.             rng(2, 1).Interior.Color = 1
  9.         Else
  10.             rng(2, 1).Interior.Color = 255
  11.         End If
  12.     End If
  13.     For i = 3 To 23
  14.         If rng(i, 2) >= 3 And rng(i, 3) = "" Then
  15.             If rng(i - 1, 2) >= 3 And rng(i - 1, 3) = "" Then
  16.                 If rng(i - 2, 2) >= 3 And rng(i - 2, 3) = "" Then
  17.                     rng(i, 1).Interior.Color = 16400
  18.                 Else
  19.                     rng(i, 1).Interior.Color = 1
  20.                 End If
  21.             Else
  22.                 rng(i, 1).Interior.Color = 255
  23.             End If
  24.         End If
  25.     Next
  26. End Sub
复制代码
QQ截图20160612183250.png

自动上色.zip

8.24 KB, 下载次数: 12

excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
发表于 2016-6-12 19:44 | 显示全部楼层
验证区域为"A13:C35",代码如下:
  1. Sub xx()
  2.     Dim rng As Range
  3.     Set rng = Sheet1.Range("A13:C35")
  4.     rng.Interior.ColorIndex = 0
  5.     If rng(1, 2) >= 3 And rng(1, 3) = "" Then rng(1, 1).Interior.Color = 255
  6.     For i = 2 To 23
  7.         If rng(i, 2) >= 3 And rng(i, 3) = "" Then
  8.             If rng(i - 1, 2) >= 3 And rng(i - 1, 3) = "" Then
  9.                 rng(i, 1).Interior.Color = 1
  10.             Else
  11.                 rng(i, 1).Interior.Color = 255
  12.             End If
  13.         End If
  14.     Next
  15. End Sub
复制代码

自动上色.rar

16.5 KB, 下载次数: 10

回复

使用道具 举报

发表于 2016-6-12 19:50 | 显示全部楼层
如果出现连续3行同时满足两个条件,那么A列将如何对应
回复

使用道具 举报

 楼主| 发表于 2016-6-12 20:50 | 显示全部楼层
爱疯 发表于 2016-6-12 19:50
如果出现连续3行同时满足两个条件,那么A列将如何对应

三行 还真没考虑  不过也会有 但是不多  不麻烦的话 再上一种颜色 第四行就不考虑了
回复

使用道具 举报

发表于 2016-6-12 22:05 | 显示全部楼层
fgg23g2.gif

添加3个条件格式
红,=and(b13>=3,c13="")
黑,=and(b12>=3,c12="",b13>=3,c13="")
绿,=and(b11>=3,c11="",b12>=3,c12="",b13>=3,c13="")


1)选择区域后,B13必须是当前单元格。
2)只适用于最多连续3行的情况。
回复

使用道具 举报

 楼主| 发表于 2016-6-12 23:32 | 显示全部楼层
爱疯 发表于 2016-6-12 22:05
添加3个条件格式
红,=and(b13>=3,c13="")
黑,=and(b12>=3,c12="",b13>=3,c13="")

超级超级大版主  VBA啊! 条件格式 不是我要的效果!!!不是真正上色!
回复

使用道具 举报

发表于 2016-6-13 07:48 | 显示全部楼层
示范表见sheet2,测试一下
  1. Private Sub Worksheet_Change(ByVal target As Range)
  2.     If target.Count = 1 Then
  3.         If target.Column = 2 Or target.Column = 3 Then
  4.             Const iRow& = 5 '起始行数
  5.             If target.Row >= iRow Then
  6.                 If target.Column = 2 Then
  7.                     clr target, 0
  8.                 Else
  9.                     clr target, 1
  10.                 End If
  11.             End If
  12.         End If
  13.     End If
  14. End Sub
复制代码
自动上色1.rar (16.25 KB, 下载次数: 9)

评分

参与人数 1 +1 收起 理由
neicezhanghao + 1 赞一个

查看全部评分

回复

使用道具 举报

发表于 2016-6-13 08:45 | 显示全部楼层    本楼为最佳答案   
三种颜色,代码如下:
  1. Sub xx()
  2.     Dim rng As Range
  3.     Set rng = Sheet1.Range("A13:C35")
  4.     rng.Interior.ColorIndex = 0
  5.     If rng(1, 2) >= 3 And rng(1, 3) = "" Then rng(1, 1).Interior.Color = 255
  6.     If rng(2, 2) >= 3 And rng(2, 3) = "" Then
  7.         If rng(1, 2) >= 3 And rng(1, 3) = "" Then
  8.             rng(2, 1).Interior.Color = 1
  9.         Else
  10.             rng(2, 1).Interior.Color = 255
  11.         End If
  12.     End If
  13.     For i = 3 To 23
  14.         If rng(i, 2) >= 3 And rng(i, 3) = "" Then
  15.             If rng(i - 1, 2) >= 3 And rng(i - 1, 3) = "" Then
  16.                 If rng(i - 2, 2) >= 3 And rng(i - 2, 3) = "" Then
  17.                     rng(i, 1).Interior.Color = 16400
  18.                 Else
  19.                     rng(i, 1).Interior.Color = 1
  20.                 End If
  21.             Else
  22.                 rng(i, 1).Interior.Color = 255
  23.             End If
  24.         End If
  25.     Next
  26. End Sub
复制代码

评分

参与人数 1 +1 收起 理由
neicezhanghao + 1 很给力

查看全部评分

回复

使用道具 举报

发表于 2016-6-13 10:53 | 显示全部楼层
本帖最后由 l00l00 于 2016-6-13 11:00 编辑
  1. Sub 自动上色()
  2. Dim i%, j%, Arr, Rng As Range
  3. Arr = Array(3, 1, 5) '3-红色  1-黑色   5-蓝色
  4. Set Rng = Range("A13:A35") '行的范围自行修改
  5. Rng.Interior.ColorIndex = -4142
  6. For i = Rng.Row To Rng.Row + Rng.Count - 1
  7.     If Cells(i, 2) > 2 And Cells(i, 3) = "" Then
  8.         If j < 3 Then
  9.             Cells(i, 1).Interior.ColorIndex = Arr(j)
  10.         End If
  11.         j = j + 1
  12.     Else
  13.         j = 0
  14.     End If
  15. Next i
  16. End Sub
复制代码

评分

参与人数 1 +1 收起 理由
neicezhanghao + 1 赞一个

查看全部评分

回复

使用道具 举报

 楼主| 发表于 2016-6-13 13:27 | 显示全部楼层
本帖最后由 neicezhanghao 于 2016-6-13 13:42 编辑

唉!!!一觉醒来这么多代码  真是不好意思 只能选一个 首先诚心的感谢大家!!!虽然我知道 积分经验没什么用 但是你们无私帮助 还是要非常诚心 感谢 谢谢 谢谢 辛苦了!!!好人一生平安 长命百岁 万事如意 功德无量  犹豫老司机带带我 帮我谢了 两个代码 只能 给他了!!!
再说一遍 虽然 积分经验没什么用  但是内心惭愧 只能 诚心的把祝福 送给你们了 我祝福 : 春风洋溢你们;家人关心你们;爱情滋润你们;财神宠信你们;朋友忠于你们;我会祝福你们;幸运之星永远照着你们!
阿弥陀佛 功德无量!!!!
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-27 11:55 , Processed in 0.189547 second(s), 19 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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