Excel精英培训网

 找回密码
 注册

QQ登录

只需一步,快速开始

你正在寻找更好的Excel学习教程吗?Excel技巧80集+数据透视表+函数初中高全套+VBA80集,想学的这儿全都有
查看: 615|回复: 14

[求助] 条件格式变VBA代码?

[复制链接]
发表于 2017-12-2 11:23 | 显示全部楼层 |阅读模式
excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
如题,见附件。
谢谢各位大侠老师的帮助!!!


条件格式变VBA代码?.rar (36.62 KB, 下载次数: 6)
 楼主| 发表于 2017-12-3 16:25 | 显示全部楼层
继续求助!
各位大侠帮帮我哦!
谢谢!
回复 支持 反对

使用道具 举报

发表于 2017-12-4 14:43 | 显示全部楼层
  1. Private Sub Worksheet_Change(ByVal Target As Range)
  2.     If Target.Row > 100 Or Target.Column > 120 Or Target.Column < 18 Then Exit Sub
  3.     If Not IsNumeric(Target) Then
  4.         Target.Interior.ColorIndex = 14
  5.     ElseIf Val(Target) >= Cells(Target.Row, "L") Then
  6.         Target.Interior.ColorIndex = 14
  7.     Else
  8.         Target.Interior.ColorIndex = 3
  9.     End If
  10. End Sub
复制代码

条件格式变VBA代码?.rar

35.38 KB, 下载次数: 2

评分

参与人数 1经验 +3 收起 理由
fxgg72 + 3 赞一个

查看全部评分

回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-12-4 16:09 | 显示全部楼层

感谢老师的帮助!
就是这个效果的。还有一点:就是当删除单元格数据时,填充的颜色能否去掉,恢复为无色状态?
还有:If Target.Row > 100 Or Target.Column > 120 Or Target.Column < 18 Then Exit Sub
这个代码表示的区域意思还是不是太明白?
谢谢!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-12-4 16:15 | 显示全部楼层
回复 支持 反对

使用道具 举报

发表于 2017-12-4 16:28 | 显示全部楼层
加一句if target="" then target.interior.colorindex=0

评分

参与人数 1经验 +3 收起 理由
fxgg72 + 3 很给力

查看全部评分

回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-12-4 20:06 | 显示全部楼层
grf1973 发表于 2017-12-4 16:28
加一句if target="" then target.interior.colorindex=0

把这句代码放进去,成功了。谢谢老师!您的这句代码我还是不很理解“If Target.Row > 100 Or Target.Column > 120 Or Target.Column < 18 Then Exit Sub”,尤其是>120;
您在能解释下么?谢谢!



回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-12-4 20:09 | 显示全部楼层
grf1973 发表于 2017-12-4 16:28
加一句if target="" then target.interior.colorindex=0

现在的最佳答案怎么给呢?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-12-4 20:28 | 显示全部楼层
grf1973 发表于 2017-12-4 16:28
加一句if target="" then target.interior.colorindex=0

老师您好!
附件中这组代码麻烦您优化下,怎么解决同样的问题?
就是删除数据让单元格中原先填充的颜色恢复成无色。
Private Sub Worksheet_Change(ByVal Target As Range)
Dim rng As Range, n&
Set rng = [r4:bm99]
If Intersect(rng, Target) Is Nothing Then Exit Sub
n = Target.Row
If Target <> "" And Cells(n, 12) <> "" Then
If Target < Cells(n, 12) Then
    Target.Interior.ColorIndex = 3
Else
    Target.Interior.ColorIndex = 10
End If
End If
End Sub


谢谢!!!


条件格式变VBA代码?.rar (34.15 KB, 下载次数: 1)
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-12-4 20:38 | 显示全部楼层
grf1973 发表于 2017-12-4 16:28
加一句if target="" then target.interior.colorindex=0

高亮显示没有了?
跟高亮显示的代码和辅助的条件格式有冲突?

回复 支持 反对

使用道具 举报

*滑块验证:
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2018-7-23 02:01 , Processed in 0.078000 second(s), 9 queries , Gzip On, Redis On.

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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