2014-04-21 51 views
0

所以我知道Excel有一個NPV函數,但我試圖讓我自己,因爲我試圖教自己的VBA。我將數據放在表格中,然後我想遍歷單元格的水平範圍(G5到I5)。我試圖構建循環的方式是通過提示現金流的數量並將該數字設置爲結束日期。這樣宏可以用於不同持續時間的問題。在Excel VBA中循環 - 如何遍歷一個範圍的函數?

我的代碼不工作,我不知道爲什麼。有人可以看看並幫助我嗎?昨天剛剛開始使用VBA時,請使用外行人的條款。

Sub NPV() 
Dim y As Integer, inv As Double, tax As Double, sal As Double, wc As Double, dr As Double, i As Integer, v As Double 
y = Range("C4") 
inv = Range("C5") 
tax = Range("C6") 
sal = Range("E4") 
wc = Range("E5") 
dr = Range("E6") 

Dim total As Double 
total = 0 
For i = 1 To y 
    v = Range("5, 5 + i") 
    v = v/(1 + dr)^i 
    total = total + v 
    Next i 

total = total + ((1 - tax) * sal) + wc 
Range("F5").Value = total 
End Sub 
+1

1)它到底如何沒有工作,2)你所期望的結果,在這裏:'V =範圍(「5, 5 +我「)? –

+0

它只是打開一個窗口,其中突出顯示了NPV的代碼。結果應該是8443.我認爲問題在於代碼的那一部分。 – user3558217

回答

1

考慮更換:

v = Range("5, 5 + i") 

有:

v = Cells(5, 5 + i) 
+0

謝謝!它現在運行 – user3558217