在VBA中使用Yield函数

时间:2017-07-11 13:55:01

标签: excel vba excel-vba

我想用Yield()计算债券的到期收益率。 Yield()在excel工作簿中可用,但我在VBA中找不到此功能。

它不是可用的WorksheetFunction,也不会在[atpvbaen.xls]引用中显示为函数。有没有人对尝试在VBA中使用Yield()有任何建议或经验?

我尝试了以下但没有成功:

   Dim s as Double
   s = [Yield(settle, maturity, coupon, price, 100,2,1)]

编译器给出了类型不匹配错误。

使用时:

    Debug.Print [Yield(settle, maturity, coupon, price, 100,2,1)]

即时窗口显示错误2029

1 个答案:

答案 0 :(得分:0)

旧版Excel中的name = school_name.decode('utf8').encode('utf8') 功能为no longer available。甚至不在 Analysis ToolPak 加载项中。

您最好的选择是在VBA中创建一个UDF(用户定义的函数),如下所示:

Yield()



创建后,您可以通过按Function YieldToMaturity(Coupon As Currency, FaceValue As Currency, _ Price As Currency, YearsToMaturity As Integer) As Single YieldToMaturity = (Coupon + ((FaceValue - Price) / YearsToMaturity)) _ / ((FaceValue + Price) / 2) End Function 并从“插入函数”对话框的下拉菜单中选择“用户定义”来调用工作表中单元格中的函数。

来源: financeformulas.net