View Single Post
  #1   Report Post  
dannyg9090 dannyg9090 is offline
Junior Member
 
Posts: 1
Default VBA - function doesn't calculate unless clicked on

Hi all

I have written a function in vba (I am pretty new to vba). It takes two arrays and finds the gradient. You also have two inputs to remove points from the beginning or end. It works exactly how I want it to except when I changed from the dependant cell (cut min and max) being on the same sheet to being on a new sheet and then changed the contents of these cells the function returns a #value! error.

when i click on the function within the worksheet (in the formula bar) and press enter the function suddenly works fine again.

Is there an autocalculate property which needs to be enabled or something?

Thanks

Danny

code below:

Public Function myGradient(lngMinRow As Long, InputColumn As String, lngCutRows As Long)


'declare variables
Dim xArray, yArray, lngMaxRow As Long

'define variables
lngMaxRow = 79 - lngCutRows

ReDim xArray(1, lngMaxRow - lngMinRow)
xArray = Range(InputColumn & lngMinRow, InputColumn & lngMaxRow)

ReDim yArray(1, lngMaxRow - lngMinRow)
yArray = Range("A" & 89, "A" & 89 + lngMaxRow - lngMinRow)


'gradient calculation
myGradient = Application.WorksheetFunction.Slope(xArray, yArray)


End Function