我想用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
答案 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