2017-06-01 95 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新問題=新帖子。 –

相關問題