@JackPaul, Yes the thread is getting a little longer in the tooth than we would prefer.

The result may well be because the initial formula was missing some brackets

Function investreturn(rate, beginning)
For i = 1 To 10
    average_bal = (beginning + ending) / 2
    investreturn = average_bal * rate
    Next i
End Function