Ok, you asked for it...
Function LinearInterpolation(TimeData As Range, m As Integer, T As Integer) As Variant
'PREPARING VARIABLES
Dim TIME1, TIME2, DATA1, DATA2, TIMEX, NewValue As Double
TIME1 = 0
TIME2 = 0
DATA1 = 0
DATA2 = 0
NewValue = 0
Dim NODES As Integer
NODES = T * m + 1
Dim i, j, z As Integer
'THE RESULTING MATRIX
Dim Mat As Variant
ReDim Mat(1 To NODES, 1 To 2)
'FINDS THE LOWEST STARTING TIME
z = TimeData(1, 1)
For i = 1 To Application.WorksheetFunction.Count(TimeData) / 2 'THIS RETURNS HOW MANY TIME VALUES WERE ORIGINALLY GIVEN
If TimeData(i, 1) < z Then z = TimeData(i, 1)
Next i
Mat(1, 1) = z
'FILLS IN THE FIRST DATA VALUE
For i = 1 To NODES
If Mat(1, 1) = TimeData(i, 1) Then Mat(1, 2) = TimeData(i, 2)
Next i
'NOW THE ACTUAL PROGRAM BEGINS
'FILLS ALL OF THE DATA IN MAT WITH XS FOR LATER USE
For j = 2 To NODES - 1
Mat(j, 2) = "X"
Next j
'POPULATES THE DATES SECTION OF MAT BY INCREASING EACH ROW BY 1/M
For i = 2 To NODES
Mat(i, 1) = Mat(i - 1, 1) + (1 / m)
Next i
'CHECKS FOR SIMILARITIES IN DATES AND FILLS IN DATA USING THE GIVEN VALUES
For j = 2 To NODES
For i = 1 To NODES - 1
If TimeData(i, 1) = Mat(j, 1) Then Mat(j, 2) = TimeData(i, 2)
Next i
Next j
Dim CHECK, ABORT As Integer
CHECK = 0
j = 1
'DONE PREPARATION
'INITIATION OF FILLING A SINGLE X CELL WITH INTERPOLATED VALUE
Do While CHECK = 0
ABORT = 0
j = 1
i = j + 1
Do While ABORT <> 1
Do While i < NODES + 1
If Mat(j, 2) = "X" Then
ABORT = 1
Mat(j, 2) = Mat(i, 2)
TIME2 = Mat(i, 1) 'THE TIME IN THE FUTURE (ti+1) FOR INTERPOLATION
End If
i = i + 1
Loop
j = j + 1
i = j + 1
Loop
TIME1 = Mat(j - 2, 1) 'THE TIME IN THE PAST (ti-1) FOR INTERPOLATION
TIMEX = Mat(j - 1, 1) 'TIMEX IS THE TIME WE ARE GOING TO INTERPOLATE
DATA1 = Mat(j - 2, 2)
DATA2 = Mat(j - 1, 2)
'THE LINEAR INTERPOLATION FORMULA
NewValue = ((DATA2 - DATA1) / (TIME2 - TIME1)) * ((TIMEX) - TIME1) + DATA1
Mat(j - 1, 2) = NewValue
'SINGLE X CELL FILLED
'SCANS FOR MORE XS
CHECK = 1
For z = 1 To NODES
If Mat(z, 2) = "X" Then CHECK = 0
Next z
'THIS LOOP WILL CONTINUE AS LONG AS THERE ARE XS
Loop
'FINAL OUTPUT TO WORKSHEET
LinearInterpolation = Mat
End Function