我正在嘗試計算幾個連續復利的現金流的 NPV。但是,當嘗試參考可選引數(這表明 NPV 將是連續復利)時,我得到#VALUE!而不是有效的 NPV
我的 VBA 代碼如下:
Function myNPV(r As Double, CF As Range, Optional rate_type = 0)
Sum = 0
t = 0
For Each Cell In CF
Sum = Sum Cell.Value / (1 r) ^ t
t = t 1
Next Cell
If rate_type = 1 Then
Sum = Sum Cell.Value / ((Exp(1)) ^ (r * t))
t = t 1
End If
myNPV = Sum
End Function
第一個公式計算非連續復合 NPV,這就是為什么我引入了可選引數以在兩個引數之間進行選擇。
當測驗我的公式如下:"=mynpv(C10, C3:C8, 1)" (C10 = discount rate, C3-C8 = Cash flows and 1 refering to the rate type),我只是得到#Value!
uj5u.com熱心網友回復:
我相信您希望將兩者都包含在回圈中,然后使用 IF 來決定要執行的操作:
Function myNPV(r As Double, CF As Range, Optional rate_type = 0)
Sum = 0
t = 0
For Each Cell In CF
If rate_type = 0 Then
Sum = Sum Cell.Value / (1 r) ^ t
Else
Sum = Sum Cell.Value / ((Exp(1)) ^ (r * t))
End If
t = t 1
Next Cell
myNPV = Sum
End Function
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/447201.html
