读书人

关于一个Excel VBA函数无法输出的有关

发布时间: 2012-02-29 16:44:11 作者: rapoo

关于一个Excel VBA函数无法输出的问题
Function bondprice(d As Date, r As Double) As Long

'the price of the bond
Dim t(9) As Double
t(0) = (Application.Date(2013, 7, 15) - d) / 365
t(1) = (Application.Date(2013, 1, 15) - d) / 365
t(2) = (Application.Date(2012, 7, 15) - d) / 365
t(3) = (Application.Date(2012, 1, 15) - d) / 365
t(4) = (Application.Date(2011, 7, 15) - d) / 365
t(5) = (Application.Date(2011, 1, 15) - d) / 365
t(6) = (Application.Date(2010, 7, 15) - d) / 365
t(7) = (Application.Date(2010, 1, 15) - d) / 365
t(8) = (Application.Date(2009, 7, 15) - d) / 365
t(9) = (Application.Date(2009, 1, 15) - d) / 365

bondprice = 0

For i = 1 To 9
If t(i) > 0 Then
bondprice = bondprice + 2 * Exp(-r * t(i))
Else
bondprice = bondprice
End If
Next i

If t(0) > 0 Then
bondprice = bondprice + 102 * Exp(-r * t(0))
Else
bondprice = bondprice
End If

End Function

我是刚刚开始学习VBA的,也没有看什么入门书。所以都不知道怎么调试。想问一下为什么无法输出正常数值结果?

[解决办法]
除非你赋值到一个单元格,否则怎么可能显示?你这里没有输出语句,你预期什么输出?
而且你债券的定价似乎是错误的,不需要乘以2

探讨
就是Excel、里面这个函数根本没用,无法输出结果。

[解决办法]
要输出到单元格,你需要用诸如:ActiveSheet.Range("A1")="haha"
这种基本的东西你需要找本VBA编程的东西系统学吧?瞎试怎么可能搞对

读书人网 >VBA

热点推荐