I'm not sure what you're doing but I did create the routine below to try a few things. It may be useful but as I say, I'm not clear on what you really are trying to do.
Code:
Sub testRunningAvg()
Dim Tot As Integer
Dim i As Integer
Dim x As Integer
x = 100
Tot = 0
Dim Pct As Double
Dim M(11) As Integer
M(0) = 30
M(1) = 20
M(2) = 10
M(3) = 25
M(4) = 35
M(5) = 50
M(6) = 10
M(7) = 35
M(8) = 40
M(9) = 25
M(10) = 15
M(11) = 90
For i = 0 To 11
' Tot is the total of the M(i)s up to this value of i
'TotPct is the Number of (i *100) + 100 (to make up for the initial 0 address)
Tot = Tot + M(i)
Debug.Print "i " & i & " M(i) " & M(i) & " Pct " & (M(i) / 100) * 100 & " Running Numbers " & Tot & " Tot Pct " & x + (100 * i) & " Tot/TotPct = " & Tot / (x + (100 * i)) * 100
Next i
End Sub