首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >VBA在Excel中的应用及手工计算净现值

VBA在Excel中的应用及手工计算净现值
EN

Stack Overflow用户
提问于 2020-10-16 03:34:56
回答 1查看 50关注 0票数 0
代码语言:javascript
复制
Sub npv()

Dim val As Long
Dim dr As Long
Dim inv As Long
Dim answer As Long
Dim i As Long

dr = Cells(1, 5).Value 'Cells(Row, Column)
inv = Cells(2, 5).Value
val = Cells(1, 1).Value
i = 0

ReDim cashFlow(1 To val) As Long

Do While i < val
    i = i + 1
    cashFlow(i) = Cells((i + 1), 1)
Loop

i = 0
    
Do While i < val
    i = i + 1
    answer = answer + cashFlow(i) / ((1 + dr) ^ i)
Loop

answer = answer - inv

Cells(4, 5).Value = answer

End Sub

你好,我想知道为什么这个不能输出一个合适的NPV。初始投资为500,贴现率为.17,现金流为50,150,175,225,其结果为100.00。应该是-118.35。我知道excel有这样的公式,但需要手动完成。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-10-16 05:59:58

你得换掉

代码语言:javascript
复制
Dim dr As Long

通过

代码语言:javascript
复制
dim dr as Double

否则,您0.17的折扣率将转换为long,从而转换为0

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64378541

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档