Thanks for all your replies. I've now fixed the issues and made f (code is v simple).

Function f_(x, n)

f_ = x ^ n

End Function

Function f(x)

m = Worksheets(1).Cells(1, 2).Value


ReDim test1(0 To m)

test1(0) = Worksheets(1).Cells(4, 3).Value

For n = 1 To m

test1(n) = Worksheets(1).Cells(4 + n, 3).Value * f_(x, n) + test1(n - 1)

Next

f = test1(m)

End Function
My new problem is that my function doesn't auto update it's values if the argument changes. How to fix?