Excel精英培训网

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

[已解决]A1:A10单元格设有公式,当A1抹掉公式输入数字时,A1单元格变红色。其他有公式的不变

[复制链接]
发表于 2014-1-19 11:30 | 显示全部楼层 |阅读模式
本帖最后由 qinhuan66 于 2014-1-19 12:42 编辑

求助:A1:A10单元格内设有公式,当A1抹掉公式输入数字时,A1单元格变为红色。其他有公式的不变色。谢谢
最佳答案
2014-1-19 11:46
  1. Private Sub Worksheet_Change(ByVal Target As Range)
  2.    Set Rng = Intersect(Target, Range("A1:A10"))
  3.    If Rng Is Nothing Then
  4.       Exit Sub
  5.    Else
  6.       If CStr(Target.Value) = Target.Formula Then Target.Font.Color = vbRed
  7.    End If
  8. End Sub
复制代码
excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
发表于 2014-1-19 11:46 | 显示全部楼层    本楼为最佳答案   
  1. Private Sub Worksheet_Change(ByVal Target As Range)
  2.    Set Rng = Intersect(Target, Range("A1:A10"))
  3.    If Rng Is Nothing Then
  4.       Exit Sub
  5.    Else
  6.       If CStr(Target.Value) = Target.Formula Then Target.Font.Color = vbRed
  7.    End If
  8. End Sub
复制代码

评分

参与人数 2 +9 收起 理由
tgydslr + 6 学习了
qinhuan66 + 3 很给力!谢谢

查看全部评分

回复

使用道具 举报

 楼主| 发表于 2014-1-19 11:55 | 显示全部楼层
xdragon 发表于 2014-1-19 11:46

就是要这样的效果。谢谢。如果能加粗字体就更加OK。谢谢
回复

使用道具 举报

 楼主| 发表于 2014-1-19 12:27 | 显示全部楼层
本帖最后由 qinhuan66 于 2014-1-19 12:31 编辑
xdragon 发表于 2014-1-19 11:46

现当A1输入值时能变红色了,现没度出现两个小问题。1、如果想恢复公式把下面的公式向上拉,2、或者清2个以上单元格的公式(即A1、A2、A3一起清空)即出现下图所示的错误。
2014-01-19-122215.png

已生新发贴了
为什么会出现运行时错误类型不匹配。谢谢
http://www.excelpx.com/thread-317898-1-1.html

回复

使用道具 举报

发表于 2014-1-19 12:35 | 显示全部楼层
qinhuan66 发表于 2014-1-19 12:27
现当A1输入值时能变红色了,现没度出现两个小问题。1、如果想恢复公式把下面的公式向上拉,2、或者清2个以 ...
  1. Private Sub Worksheet_Change(ByVal Target As Range)
  2.    Dim rng
  3.    For Each rng In Target
  4.       If Intersect(rng, Range("A1:A10")) Is Nothing Then
  5.         Exit Sub
  6.       Else
  7.          If CStr(rng.Value) = rng.Formula Then rng.Font.Color = vbRed: rng.Font.Bold = True
  8.       End If
  9.    Next
  10. End Sub
复制代码

评分

参与人数 1 +3 收起 理由
qinhuan66 + 3 很给力!谢谢呀。谢谢

查看全部评分

回复

使用道具 举报

发表于 2014-1-19 19:35 | 显示全部楼层
回复

使用道具 举报

 楼主| 发表于 2014-1-20 09:51 | 显示全部楼层
本帖最后由 qinhuan66 于 2014-1-20 10:16 编辑
xdragon 发表于 2014-1-19 12:35

老师又打扰你了,用了你的代码非常好用。但使用过程中发现了一个问题,就是当不在代码Range("c14:c25,g14:g25,k14:k25,o14:o25,s14:s25,c31:c42,g31:g42,k31:k42,o31:o42,s31:s42,c48:c59,g48:g59,k48:k59,o48:o59,s48:s59,c65:c76,g65:g76,k65:k76,o65:o76,s65:s76,c82:c93,g82:g93,k82:k93,o82:o93,s82:s93")) Is Nothing Then范围内输入即自动解除工作表保护(锁了保护的),不知道是什么原因。
王五.rar (57.83 KB, 下载次数: 5)
回复

使用道具 举报

发表于 2014-1-20 12:59 | 显示全部楼层
qinhuan66 发表于 2014-1-20 09:51
老师又打扰你了,用了你的代码非常好用。但使用过程中发现了一个问题,就是当不在代码Range("c14:c25,g14 ...
  1. Private Sub Worksheet_Change(ByVal Target As Range)
  2. With Sheets("个人缴费卡片")
  3. Dim rng
  4. For Each rng In Target
  5. If Intersect(rng, Range("c14:c25,g14:g25,k14:k25,o14:o25,s14:s25,c31:c42,g31:g42,k31:k42,o31:o42,s31:s42,c48:c59,g48:g59,k48:k59,o48:o59,s48:s59,c65:c76,g65:g76,k65:k76,o65:o76,s65:s76,c82:c93,g82:g93,k82:k93,o82:o93,s82:s93")) Is Nothing Then
  6. Exit Sub
  7. Else
  8. If CStr(rng.Value) = rng.Formula Then
  9. .Unprotect ("695360052")
  10. With rng.Font
  11. .Color = vbRed
  12. .Bold = True
  13. End With
  14. .Protect ("695360052")
  15. End If
  16. End If
  17. Next
  18. End With
  19. End Sub
复制代码
不知道为啥,格式都没了。。你自己调整下吧。。。-。-
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-26 15:20 , Processed in 0.354766 second(s), 15 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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