Welcome to the forum!
When posting code, please paste between code tags. Click the # icon on the toolbar to insert the tags.
I highly recommend that you use Option Explicit and require Variable Declaration. You can set those as defaults in VBE's Options. Then use Dim to declare all of your variables.
Of course you made a typo in the xlToRight. You used one (1) rather than "L". Using Debug menu's Compile is a good idea before a Run. I put that on my VBE toolbar.
You should declare what type of value your Functions should return.
If needed, you can attach a simple file which helps us help you. Sample data is good to include and show manually computed expected results as well. Click Go Advanced button in lower right of a reply, and click the paperclip icon on toolbar to Browse and Upload file.
e.g.
Option Explicit
'Will not be a UDF:
Function nNPV(Rate, R) As Double 'Both inputs are type, Variant
nNPV = R(1) + Application.WorksheetFunction.NPV(Rate, R.Range("B1", R.End(xlToRight)))
'R.Range(CellTopLeft, CellBottomRight)
'R.End(Direction): Directions are x1Down, x1ToLeft, x1ToRight, x1Up
End Function
Function ComputePV(cf() As Variant) As Double 'Auxiliary function
Dim Temp As Double, i As Long
Temp = 0
For i = LBound(cf) To UBound(cf) 'From time 0 to time n
Temp = Temp + cf(i) / 1.05 ^ i
Next i
ComputePV = Temp
End Function