Se me complicó el asunto con los milisegundos, ya que creo que la unidad mínima con la que trabajan las funciones que te di es con segundos y no encontré algo que me dijera lo contrario. Por lo tanto, cree una función que te permite convertir tu cadena de texto a milisegundos, de esta forma puedes comparar y promediar.
'Convierte una cadena de tiempo (HH. MM. SS.mili) en milisegundos _
strTexto: Expresión que contiene la cadena de tiempo _
intFracSeg: Cantidad en la que se desea fraccionar el segundo _
(por defecto, 1000 para milisegundos) _
strSeparador: Caracer con el que se separan las distintas unidades de tiempo _
(por defecto un punto)'
'Por GP'
Function ms(strTexto As String, _
Optional intFracSeg As Integer = 1000, _
Optional strSeparador As String = ".") As Long
Dim datos() As String
Dim i As Integer, j As Integer
'Dividir la cadena'
datos = Split(strTexto, strSeparador)
j = UBound(datos) - 1
i = j
'Tomar los milisegundos'
ms = CLng(datos(j + 1))
'Convertir los demás datos en milisegundos'
Do Until (i < 0)
ms = ms + (datos(i) * (60 ^ (j - i))) * intFragSeg
i = i - 1
Loop
End Function
Te quedaría la tarea de convertir de milisegundos a cada una de las otras unidades en caso de que lo necesitaras.
S@lu2