NPV Function [VBA]

Calculates the Net Present Value of an investment, based on a supplied discount rate, and a series of deposits and withdrawals.


This function or constant is enabled with the statement Option VBASupport 1 placed before the executable program code in a module.


NPV (Rate as Double, Values() as Double)

Return value:



Rate is the discount rate for a period.

Values() is an array that represent deposits (positive values) or withdrawals (negative values).

Error codes:

D'oh! You found a bug (text/sbasic/shared/00000003.xhp#err5 not found).


REM ***** BASIC *****
Option VBASupport 1
Sub ExampleNPV
 Dim r As Double
 Dim pValues(5) as Double
 pValues(0) = 100
 pValues(1) = 100
 pValues(2) = 100
 pValues(3) = -300
 pValues(4) = 100
 pValues(5) = 100
 r = 0.06
 p = NPV( r, pValues)
 Print p ' returns 174,894967305331
End Sub

Please support us!