【发布时间】:2014-05-07 09:53:39
【问题描述】:
我正在做一个条件语句,并且我已经使用 VBA 自动化了我的电子表格。一切正常,直到涉及到这个公式。我猜它与文本字符串有关。我已经尝试过使用 & Chr(34) & 之前和之后,它也不起作用。
公式如下:=IF(E2="RIA Review",IF(G2<=4,"Green",IF(G2=5,"Yellow","Red")), IF(E2="Delivery",IF(I2<=-7,"Green",IF(I2=-1,"Yellow","Red")),IF(E2="Launch/Close",IF(I2>=121,"Red",IF(I2>=111,"Yellow",IF(I2> =100,"Green","N/A"))),IF(OR(E2="Intent",E2="AE Review",E2="Initial Review",E2="AE Disposition"),IF(G2<=8,"Green",IF(OR(G2=9,G2=10)," Yellow",IF(G2>=11,"Red")))))))
这是 VBA 中的代码(它改变了单元格引用,我仍然很难知道它是否在谈论正确的单元格)
Range("H2").Select
ActiveCell.FormulaR1C1 = _
"=IF(RC[-3]=""RIA Review"",IF(RC[-1]<=4,""Green"",IF(RC[-1]=5,""Yellow"",""Red"")),IF(RC[-3]=""Delivery"",IF(RC[1]<=-7,""Green"",IF(RC[1]=-1,""Yellow"",""Red"")),IF(RC[-3]=""Launch/Close"",IF(RC[1]>=121,""Red"",IF(RC[1]>=111,""Yellow"",IF(RC[1]>=100,""Green"",""N/A""))),IF(OR(RC[-3]=""Intent"",RC[-3]=""AE Review"",RC[-3]=""Initial Review"",RC[-3]=""AE Disposition"")," & _
"]<=8,""Green"",IF(OR(RC[-1]=9,RC[-1]=10),""Yellow"",IF(RC[-1]>=11,""Red"")))))))"
任何帮助都会很棒!
【问题讨论】:
-
1) 这里有问题:
"]<=8,""Green""2)ActiveCell.FormulaR1C1接受长度小于 255 个字符的公式 -
ughghghghg 我讨厌这些嵌套公式。与其构建一个宏来执行如此丑陋的公式操作,不如构建一个执行所需验证的宏呢?实时更新可以通过工作表的
Change事件来处理... -
大卫泽门斯不要粗鲁 - 为什么不提供帮助?你有没有想过我是一个初学者,不知道你在说什么?很难让丑陋的嵌套公式起作用。但我很自豪我发现了这一点。我只使用 excel 和 VBA 大约 3 个月,之前没有任何编码经验。下次提供真正的帮助,而不仅仅是对寻求帮助的人刻薄。