Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
楼主: stockding111

求一句命令的写法,老师帮帮忙。

[复制链接]
发表于 2013-6-3 13:48 | 显示全部楼层
条件格式这个肯定没戏的。
回复

使用道具 举报

 楼主| 发表于 2013-6-3 13:52 | 显示全部楼层
hwc2ycy 发表于 2013-6-3 13:48
条件格式这个肯定没戏的。

   晕~~~      
回复

使用道具 举报

 楼主| 发表于 2013-6-3 13:55 | 显示全部楼层
hwc2ycy 发表于 2013-6-3 13:48
条件格式这个肯定没戏的。

老师,这个是条件格式填充颜色的条件
If (x >= 239 And x <= 241) Or (x >= 269 And x <= 271) Or (x >= 359 And x <= 361) Or (x >= 59 And x <= 61) Or (x >= 179 And x <= 181) Or (x >= 119 And x <= 121) Or (x >= 89 And x <= 91) Or (x >= 0 And x <= 1) Then

加上这些条件,又办法实现我那个诉求吗?
   
回复

使用道具 举报

发表于 2013-6-3 14:02 | 显示全部楼层
条件格式的没法判断。
你只能根据条件来测试符是否符合条件。

回复

使用道具 举报

发表于 2013-6-3 16:32 | 显示全部楼层
stockding111 发表于 2013-6-3 13:55
老师,这个是条件格式填充颜色的条件
If (x >= 239 And x = 269 And x = 359 And x = 59 And x = 179 An ...

将你条件格式中的条件直接放到代码中来判断,直接处理,不需要重新设置条件格式
回复

使用道具 举报

发表于 2013-6-3 16:44 | 显示全部楼层
stockding111 发表于 2013-6-3 13:55
老师,这个是条件格式填充颜色的条件
If (x >= 239 And x = 269 And x = 359 And x = 59 And x = 179 An ...

代码中的条件应该从小到大或从大到小排列,不能这样混排

给你写了一个自定义函数,用来判断给定的一个值是否在设置的条件内,如果在则返回 true ,否则返回 false


  1. Private Function Tf(ByVal Num As Double) As Boolean
  2.   Select Case Num
  3.     Case 0 To 1, 59 To 61, 89 To 91, 119 To 121, 179 To 181, 239 To 241, 269 To 271, 359 To 361
  4.     Tf = True
  5.   Case Else
  6.     Tf = False
  7.   End Select
  8. End Function
复制代码


调用方法很简单

  1. Sub cc()
  2.   MsgBox Tf(125)
  3.   MsgBox Tf(121)
  4. End Sub
复制代码

评分

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

查看全部评分

回复

使用道具 举报

发表于 2013-6-3 17:35 | 显示全部楼层
stockding111 发表于 2013-6-3 13:55
老师,这个是条件格式填充颜色的条件
If (x >= 239 And x = 269 And x = 359 And x = 59 And x = 179 An ...

再修改一下,方便你一次使用多个单元格


  1. Private Function Tf(ParamArray Num() As Variant) As Boolean
  2. Dim X As Byte, T As Boolean
  3.   For X = LBound(Num) To UBound(Num)
  4.     Select Case Num(X)
  5.       Case 0 To 1, 59 To 61, 89 To 91, 119 To 121, 179 To 181, 239 To 241, 269 To 271, 359 To 361
  6.         T = True
  7.       Case Else
  8.         T = False
  9.     End Select
  10.     If T = False Then Exit For
  11.   Next X
  12.   Tf = T
  13. End Function

  14. Sub cc()
  15.   MsgBox Tf(Range("B3").Value, Range("C3").Value)
  16. End Sub
复制代码

评分

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

查看全部评分

回复

使用道具 举报

 楼主| 发表于 2013-6-3 18:11 | 显示全部楼层
无聊的疯子 发表于 2013-6-3 16:44
代码中的条件应该从小到大或从大到小排列,不能这样混排

给你写了一个自定义函数,用来判断给定的一个值 ...

谢谢热心的老师!!!
回复

使用道具 举报

 楼主| 发表于 2013-6-3 20:14 | 显示全部楼层
无聊的疯子 发表于 2013-6-3 17:35
再修改一下,方便你一次使用多个单元格

老师,举个例子让我这个菜鸟学习下吧:
如果“E5:L51”和“Q5:X51”两个区域的单元格符合以下条件的,则用红色颜色填充。怎么写呢?
条件是“Case 0 To 1, 59 To 61, 89 To 91, 119 To 121, 179 To 181, 239 To 241, 269 To 271, 359 To 361”
回复

使用道具 举报

发表于 2013-6-3 20:58 | 显示全部楼层
stockding111 发表于 2013-6-3 20:14
老师,举个例子让我这个菜鸟学习下吧:
如果“E5:L51”和“Q5:X51”两个区域的单元格符合以下条件的, ...

以单个单元格为条件么??

还是以区域中的行为单位做条件??
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-3 11:15 , Processed in 0.401801 second(s), 9 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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