当前位置: 代码迷 >> VBA >> 关于一个Excel VBA函数无法输出的有关问题
  详细解决方案

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

热度:6469   发布时间:2013-02-26 00:00:00.0
关于一个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编程的东西系统学吧?瞎试怎么可能搞对
  相关解决方案