This function is designed to calculate the area of a closed traverse. When written as a sub and assigned to a specific cell, the sub works perfectly. However, when used as a function- as shown below- it returns only zero. Why? 'Function designed to accommodate any number of traverse sides
Public Function TraverseArea() As Double
Dim Area As Double
Area = 0
Range("N2").Select
Area = (ActiveCell.Value * (Range("M2").End(xlDown).Offset(-1, 0).Value - ActiveCell.Offset(1, -1).Value))
ActiveCell.Offset(1, 0).Select
While ActiveCell.Offset(1, -1) <> ""
Area = Area + (ActiveCell.Value * (ActiveCell.Offset(-1, -1).Value - ActiveCell.Offset(1, -1).Value))
ActiveCell.Offset(1, 0).Select
Wend
If Area < 0 Then
Area = Area * -1
End If
Area = Area / 2
TraverseArea = Area
End Function