2017-06-01 90 views
0

我有两个易失性公式,它在Excel中硬编码时工作正常..但此公式将是动态的,因此我将它插入到VBA中,稍后将循环。预期:语句错误结束 - 编码易失性公式

Worksheets("Interest Calculator").Range("E5").Formula = "=IF($C5>Inputs!E8-1,"",IF($C5<=Portfolio_Duration,(SUM($E$4:E4)+$G4)/Portfolio_Duration,(SUM(INDIRECT("E"&$C5-Portfolio_Duration+4):INDIRECT("E"&$C5+3))+$G4)/Portfolio_Duration))" 

我得到一个编译错误:预期:语句的结束和 “E” 在INDIRECT( “E” & $ C5 + 3))+ $ G4)/ Portfolio_Duration))”突出显示

我怎样才能解决这个代码吗?谢谢!

如果有帮助,错误持续时间= 55和组合久期= 36

+2

将双引号加倍使得“”(两个双引号)变成“”“”(四个双引号)并且“E”变成“”E“” – sktneer

+0

当您在公式在VBA中,你还必须用''“'来包围它。所以改变'“= IF($ C5> Inputs!E8-1,”“,''''= IF($ C5> Inputs!E8-1,”“”“,'看看是否有效。 E“作为sktneer指出:) – dwirony

+0

@dwirony - 仅供参考 - 这不是''''必须被''''包围' - 它就是每个''''''''''''''''''' ''需要变成''“”“'(可能会出现**,只是在每一端放置一个额外的'''),但是'IF(E1 =”“”“,(例如)成为'IF(E1 =“”“”“”“”“,',不只是'IF(E1 =”“”“”“,',。 – YowE3K

回答

2

双所有"

Worksheets("Interest Calculator").Range("E5").Formula = "=IF($C5>Inputs!E8-1,"""",IF($C5<=Portfolio_Duration,(SUM($E$4:E4)+$G4)/Portfolio_Duration,(SUM(INDIRECT(""E""&$C5-Portfolio_Duration+4):INDIRECT(""E""&$C5+3))+$G4)/Portfolio_Duration))" 
+0

我想要做一个For循环与 – Rome876

+0

@ Rome876新问题=新帖子。 –

相关问题