Excel精英培训网

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

[已解决]一个关于单元格上色的问题!!!

[复制链接]
发表于 2012-10-21 11:33 | 显示全部楼层 |阅读模式

表格中有VBA代码,请老师帮我修改成这种效果!!!
13026.jpg
最佳答案
2012-10-21 11:49
  1. Sub 上色()
  2.     Dim rg As Range
  3.     Dim x As Byte
  4.     For Each rg In Range("c10:c" & [C65536].End(xlUp).Row)
  5.         If rg.Value <> rg.Offset(-1, 0).Value Then
  6.             x = IIf(x = 22, 31, 22)
  7.             rg.Resize(, 5).Interior.ColorIndex = x
  8.         Else
  9.             x = IIf(x = 22, 22, 31)
  10.             rg.Resize(, 5).Interior.ColorIndex = x
  11.         End If
  12.     Next
  13. End Sub
复制代码

判断单元格数据并上色.rar

11.1 KB, 下载次数: 15

发表于 2012-10-21 11:47 | 显示全部楼层
你这上色有依据吗?
如果有的话,直接用条件格式也可以的。
回复

使用道具 举报

发表于 2012-10-21 11:49 | 显示全部楼层    本楼为最佳答案   
  1. Sub 上色()
  2.     Dim rg As Range
  3.     Dim x As Byte
  4.     For Each rg In Range("c10:c" & [C65536].End(xlUp).Row)
  5.         If rg.Value <> rg.Offset(-1, 0).Value Then
  6.             x = IIf(x = 22, 31, 22)
  7.             rg.Resize(, 5).Interior.ColorIndex = x
  8.         Else
  9.             x = IIf(x = 22, 22, 31)
  10.             rg.Resize(, 5).Interior.ColorIndex = x
  11.         End If
  12.     Next
  13. End Sub
复制代码
回复

使用道具 举报

发表于 2012-10-21 11:51 | 显示全部楼层
C9那一行如果也要上的话就加一句
  1. range("c9").resize(,5).Interior.ColorIndex = 3
复制代码
回复

使用道具 举报

发表于 2012-10-21 11:53 | 显示全部楼层
因为原来你的代码只给C列的单元格上了色,现在还得把另外该行另外的几列都要上色。
所以用RESIZE改变区域大小,行不变,列扩充为5列。
回复

使用道具 举报

发表于 2012-10-21 11:54 | 显示全部楼层
能够用IIF来做切换开关,这个用得好,加油。
回复

使用道具 举报

 楼主| 发表于 2012-10-21 12:02 | 显示全部楼层
hwc2ycy 发表于 2012-10-21 11:54
能够用IIF来做切换开关,这个用得好,加油。

谢谢老师帮忙~!{:3212:}
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-27 05:48 , Processed in 0.827859 second(s), 13 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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