1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| Public Function DVVALUE1(cusip As Variant) As Variant
Dim b As Double
Application.Volatile
Worksheets("BONDS").EnableCalculation = False
Set R = Range("A:A").Find(cusip).Offset(3, 2)
If Not R Is Nothing Then
For Each c In Range(R, R.End(xlDown))
a = Run([USA_CALC_DF], Range(c.Offset(0, -1), c.Offset(0, -1)), Range("KESCURVE"), 3, 1)
z = Run([USA_CALC_DF_SPREAD2], Range(c.Offset(0, -1), c.Offset(0, -1)), Range("KESCURVE"), 3, 1, -0.0001, 100)
b = b + c * (a(1) - z(1))
Next
End If
DVVALUE1 = b
Worksheets("BONDS").EnableCalculation = True
Worksheets("BONDS").Calculate
End Function |