Foxtable(狐表)用户栏目专家坐堂 → 财务函数NPV代码


  共有2835人关注过本帖树形打印复制链接

主题:财务函数NPV代码

帅哥哟,离线,有人找我吗?
爱相随
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:932 积分:6531 威望:0 精华:0 注册:2014/6/25 10:48:00
财务函数NPV代码  发帖心情 Post By:2020/12/30 23:36:00 [显示全部帖子]

老师,我的表包含以下几列:
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

 回到顶部
帅哥哟,离线,有人找我吗?
爱相随
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:932 积分:6531 威望:0 精华:0 注册:2014/6/25 10:48:00
  发帖心情 Post By:2020/12/31 22:17:00 [显示全部帖子]

现在的问题是,只有“资金成本”变动时,NPV现值才会变动,怎样改变代码,才能使任何一项值变动都能使NPV现值发生变动,并且实现以下功能:

1、项目投资期数的值从1-6时,Values(0)的列数也分别选择“第一年流量”。。。。“第六年流量”。比如当项目投资期数的值为4时,Values(0)的列数为“第一年流量”至“第四年流量”;
2、当以下数据列“项目投资期数、资金成本R、折现率、第一年流量、第二年流量。。。”任一列的值发生变动时,NPV现值的值也跟着变动。
3、如果拆现率是一个附表B,折现率的值根据项目投资期数和资金成本R的值自动从表B中取数。

 回到顶部