首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VB >

麻烦朋友们解释一下excel中的一段VBA代码,多谢

2012-02-01 
麻烦朋友们解释一下excel中的一段VBA代码,谢谢D4和C4是excel当中的列E4IF(OR(0.7*D4C4,C41.3*D4),50,I

麻烦朋友们解释一下excel中的一段VBA代码,谢谢
D4和C4是excel当中的列

E4=IF(OR(0.7*D4>C4,C4>=1.3*D4),50,IF(AND(1.3*D4>C4,C4>=D4),50+40*(1.3*D4-C4)/D4/0.3,IF(AND(D4>C4,C4>=0.7*D4),90+10*(D4-C4)/D4/0.3,-1)))


麻烦朋友们帮忙解释一下这段代码的意思,谢谢,分部够可以再加

[解决办法]
up
[解决办法]
对Excel公式,简单的还行,复杂的不行。
帮顶一下吧。
[解决办法]
如果 0.7乘D4的值大于C4 或 C4大于或等于1.3乘D4的值,则E4的值等于50
如果 1.3*D4大于C4并且C4大于D4, 则E4的值等于50加上40*(1.3*D4-C4)/D4/0.3
如果 D4大于C4并且C4大于或等于0.7*D4,则E4的值等于90+10*(D4-C4)/D4/0.3
其余情况下,则E4的值等于 -1
[解决办法]
如果 0.7乘D4的值大于C4 或 C4大于或等于1.3乘D4的值,则E4的值等于50 
如果 1.3*D4大于C4并且C4大于或等于D4, 则E4的值等于50加上40*(1.3*D4-C4)/D4/0.3 
如果 D4大于C4并且C4大于或等于0.7*D4,则E4的值等于90+10*(D4-C4)/D4/0.3 
其余情况下,则E4的值等于 -1


[解决办法]
跟着大胡子UP
[解决办法]
先看大的逻辑

VB code
E4=IF(OR(0.7*D4>C4,C4>=1.3*D4),50,IF(AND(1.3*D4>C4,C4>=D4),50+40*(1.3*D4-C4)/D4/0.3,IF(AND(D4>C4,C4>=0.7*D4),90+10*(D4-C4)/D4/0.3,-1)))   if(        条件         ,真做,   假做                                                                                           )                                  IF(AND(1.3*D4>C4,C4>=D4),50+40*(1.3*D4-C4)/D4/0.3,IF(AND(D4>C4,C4>=0.7*D4),90+10*(D4-C4)/D4/0.3,-1))                                  if(         条件       ,          真做         ,           假做                                 )                                                                                    IF(AND(D4>C4,C4>=0.7*D4),90+10*(D4-C4)/D4/0.3,-1)                                                                                    if(       条件         ,     真做         ,假做)
[解决办法]
再看细节

E4=IF(OR(0.7*D4>C4,C4>=1.3*D4),50,IF(AND(1.3*D4>C4,C4>=D4),50+40*(1.3*D4-C4)/D4/0.3,IF(AND(D4>C4,C4>=0.7*D4),90+10*(D4-C4)/D4/0.3,-1))) 

*************************
OR(0.7*D4>C4,C4>=1.3*D4)
或的关系
0.7*D4>C4 和 C4>=1.3*D4 有一个为真即为真
————————————————————————
AND(1.3*D4>C4,C4>=D4)
和的关系
1.3*D4>C4 和 C4>=D4 全部为真才为真
————————————————————————
AND(D4>C4,C4>=0.7*D4)
和的关系
D4>C4 和 C4>=0.7*D4 全部为真才为真
[解决办法]
转换为 VB/VBA 的逻辑(下面的 C4、D4、E4指的是相应单元格的值):
VB code
If ((0.7*D4 > C4) Or (C4 >= 1.3*D4)) Then    E4 = 50Else    IF((1.3*D4 > C4) And (C4 >= D4)) Then        E4 = 50+40*(1.3*D4-C4)/D4/0.3    Else        If ((D4 > C4) And (C4>=0.7*D4)) Then            E4 = 90+10*(D4-C4)/D4/0.3        Else            E4 = -1        End If    End IfEnd If
[解决办法]
VB code
如果  0.7乘D4的值大于C4 或 C4大于或等于1.3乘D4的值,则E4的值等于50,否则                                                                   如果  1.3*D4大于C4并且C4大于D4, 则E4的值等于50加上40*(1.3*D4-C4)/D4/0.3,否则                                                                                                                                             如果  D4大于C4并且C4大于或等于0.7*D4,则E4的值等于90+10*(D4-C4)/D4/0.3,否则                                                                                                                                     E4的值等于 -1 

热点排行