以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 财务函数NPV代码 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=159576) |
-- 作者:爱相随 -- 发布时间:2020/12/30 23:36:00 -- 财务函数NPV代码 老师,我的表包含以下几列: NPV现值、项目投资期数、资金成本R、折现率、第一年流量、第二年流量。。。。要求: 1、项目投资期数的值从1-6时,Values(0)的列数也分别选择“第一年流量”。。。。“第六年流量”。比如当项目投资期数的值为4时,Values(0)的列数为“第一年流量”至“第四年流量”; 2、当以下数据列“项目投资期数、资金成本R、折现率、第一年流量、第二年流量。。。”任一列的值发生变动时,NPV现值的值也跟着变动。 3、如果拆现率是一个附表B,折现率的值根据项目投资期数和资金成本R的值从表B中取得。 下面的代码是根据帮助例子改造的,只有"资金成本"变动时,NPV现值才会变动,结果与帮助相同。请老师和其他大师指点,最好给出完整代码为谢!! If e.DataCol.Name = "资金成本" The如 If e.DataRow.IsNull("资金成本") Then e.DataRow("净现值") = Nothing Else Dim Guess As Double Dim RetRate As Double Dim NetPVal As Double Dim Values(8) As Double Guess = e.DataRow("资金成本") RetRate = e.DataRow("贴现率") Values(0) = e.DataRow("第一年流量") Values(1) = e.DataRow("第二年流量") Values(2) = e.DataRow("第三年流量") Values(3) = e.DataRow("第四年流量") Values(4) = e.DataRow("第五年流量") Values(5) = e.DataRow("第六年流量") Values(6) = e.DataRow("第七年流量") Values(7) = e.DataRow("第八年流量") e.DataRow("净现值") = NPV(e.DataRow("贴现率"), Values) End If End If
|
-- 作者:有点蓝 -- 发布时间:2020/12/31 9:33:00 -- 没看懂,现在是什么问题,什么地方不正确? |
-- 作者:爱相随 -- 发布时间:2020/12/31 22:17:00 -- 现在的问题是,只有“资金成本”变动时,NPV现值才会变动,怎样改变代码,才能使任何一项值变动都能使NPV现值发生变动,并且实现以下功能: 1、项目投资期数的值从1-6时,Values(0)的列数也分别选择“第一年流量”。。。。“第六年流量”。比如当项目投资期数的值为4时,Values(0)的列数为“第一年流量”至“第四年流量”;
2、当以下数据列“项目投资期数、资金成本R、折现率、第一年流量、第二年流量。。。”任一列的值发生变动时,NPV现值的值也跟着变动。
3、如果拆现率是一个附表B,折现率的值根据项目投资期数和资金成本R的值自动从表B中取数。
|
-- 作者:有点蓝 -- 发布时间:2020/12/31 22:50:00 -- http://www.foxtable.com/webhelp/topics/2242.htm Select Case e.DataCol.Name
Case "资金成本","第一年流量","第二年流量",...... |