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

laohuchiren 2009-10-26 06:16:57
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)))


麻烦朋友们帮忙解释一下这段代码的意思,谢谢,分部够可以再加
...全文
144 10 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
laohuchiren 2009-10-26
  • 打赏
  • 举报
回复
谢谢各位了
jhone99 2009-10-26
  • 打赏
  • 举报
回复
如果  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
舉杯邀明月 2009-10-26
  • 打赏
  • 举报
回复
转换为 VB/VBA 的逻辑(下面的 C4、D4、E4指的是相应单元格的值):
If ((0.7*D4 > C4) Or (C4 >= 1.3*D4)) Then
E4 = 50
Else
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 If
End If

jhone99 2009-10-26
  • 打赏
  • 举报
回复
再看细节

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 全部为真才为真
jhone99 2009-10-26
  • 打赏
  • 举报
回复
先看大的逻辑
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( 条件 , 真做 ,假做)

贝隆 2009-10-26
  • 打赏
  • 举报
回复
跟着大胡子UP
lb_bn 2009-10-26
  • 打赏
  • 举报
回复
如果 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

lb_bn 2009-10-26
  • 打赏
  • 举报
回复
如果 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
Flyingdragon168 2009-10-26
  • 打赏
  • 举报
回复
对Excel公式,简单的还行,复杂的不行。
帮顶一下吧。
getemail 2009-10-26
  • 打赏
  • 举报
回复
up

2,503

社区成员

发帖
与我相关
我的任务
社区描述
VBA(Visual Basic for Applications)是Visual Basic的一种宏语言,是在其桌面应用程序中执行通用的自动化(OLE)任务的编程语言。
社区管理员
  • VBA
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧