View Single Post
  #2   Report Post  
Posted to microsoft.public.excel.programming
Floyd[_2_] Floyd[_2_] is offline
external usenet poster
 
Posts: 35
Default OFFSET and SUMPRODUCT

This might be easier to understand:

Function FirstYearDepreciation(Current_Year As Double, Year_First As
Double, Fac_Depr As Integer)
Dim FirstRange As Range
Dim SecondRange As Range
Dim YearDelta As Double
Set FirstRange = Range("CI9")
Set SecondRange = Range("DO40")
Dim SRng1Addr As String
Dim SRng2Addr As String
YearDelta = Current_Year - Year_First

SRng1Addr = FirstRange.Offset(-WorksheetFunction.Min(YearDelta,
Fac_Depr), 0).Resize(WorksheetFunction.Min(YearDelta + 1, Fac_Depr +
1), 1).Address(external:=True)
SRng2Addr = SecondRange.Offset(-WorksheetFunction.Min(YearDelta,
Fac_Depr), 0).Resize(WorksheetFunction.Min(YearDelta + 1, Fac_Depr +
1), 1).Address(external:=True)

FirstYearDepreciation = WorksheetFunction.SumProduct(SRng1Addr,
SRng2Addr)
End Function