Excel精英培训网

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

[已解决]多条件中只有一个为真时的表达式怎么写

[复制链接]
发表于 2012-1-14 16:39 | 显示全部楼层 |阅读模式

我在编辑一个SUB语句时,做IF判断的时候,有三个条件,只有其中一个条件为真时运行,我用下列代码不对
IF 条件1 XOR 条件2 XOR 条件3 then
上面的表达式当三个条件都成立的时候,表达式也是真的,不对。
后来用
IF 条件1 + 条件2 + 条件3 = 1 then
这也不对
那应该怎么写才对啊?
最佳答案
2012-1-14 17:21
本帖最后由 sunjing-zxl 于 2012-1-14 17:22 编辑

在VBA计算中逻辑值 真等于负1
函数计算中逻辑值才等于1
而逻辑值 假在VBA和函数都是0

所以3个条件你要一个条件成立才运行的语句是
IF 条件1 + 条件2 + 条件3 = -1 then

可以用这个程序测试真假的计算值
Sub aa()
MsgBox (1 = 2) * 1
MsgBox (1 = 1) * 1
End Sub

excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
发表于 2012-1-14 16:52 | 显示全部楼层
本帖最后由 zjcat35 于 2012-1-14 16:53 编辑

把等于1改成等于-1
(条件1)+(条件2)+(条件3) = -1
回复

使用道具 举报

发表于 2012-1-14 17:00 | 显示全部楼层
回复

使用道具 举报

发表于 2012-1-14 17:21 | 显示全部楼层    本楼为最佳答案   
本帖最后由 sunjing-zxl 于 2012-1-14 17:22 编辑

在VBA计算中逻辑值 真等于负1
函数计算中逻辑值才等于1
而逻辑值 假在VBA和函数都是0

所以3个条件你要一个条件成立才运行的语句是
IF 条件1 + 条件2 + 条件3 = -1 then

可以用这个程序测试真假的计算值
Sub aa()
MsgBox (1 = 2) * 1
MsgBox (1 = 1) * 1
End Sub

回复

使用道具 举报

发表于 2012-1-14 17:28 | 显示全部楼层
if 条件1=true and 条件2=false and 条件3=false then

elseif 条件1=false and 条件2=true and 条件3=false then

elseif 条件1=false and 条件2=false and 条件3=true then

end if
回复

使用道具 举报

发表于 2012-1-14 18:23 | 显示全部楼层
学习来的,我只会一点点函数
回复

使用道具 举报

发表于 2012-1-14 19:53 | 显示全部楼层
看了以上老师们的发言,我整理了一下:
    第一种方式:如果简单的想判断一下就用”+“号连接条件,在VBA中,TRUE=-1,所以,如果想三个条件中符合两个的就 THEN 后面的语句,判断式的合值为-2,如果想三个条件中只要求符合一个的才THEN 后面的语句,判断式的合值为-1,但要注意,判断式一定要用()括起来
   第二种方式: 如果想具体到第一个判断式的真假,那么就直接在判断式后面加上=TRUE 或者=FALSE 即可
     谢谢无痕兄的提问,又学习了!!{:011:}
回复

使用道具 举报

发表于 2012-1-14 20:04 | 显示全部楼层
除了转化为数学运算,还可以用xor
回复

使用道具 举报

发表于 2012-1-15 20:21 | 显示全部楼层
谢谢4楼,我按函数的逻辑值真为1去写代码总不对,看了这帖才知道原因
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-16 11:42 , Processed in 0.235334 second(s), 11 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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