Hola:
A ver que te parece este código, que pretende hacer lo que tu quieres pero como ves de una manera mucho mas simple.
La Matriz Semanas(55) está definida fuera de la función para que puedas utilizarla posteriomente desde otra con los datos obtenidos.
Mi idea para no complicarnos la vida es crear una Matriz que como mucho podrá contener 52 o 53 semanas dependiendo del año pero nunca 55 y por otra parte la Semana 0 no se utilizará.
De este modo en cualquier punto del programa puedes preguntar:
If Semanas(5)=0 Then
' No tiene movimientos relacionados
Else
' Mostrar sus movimientos que empiezan en el Registro Semanas(5)
End If
Es una idea
Código vb:
Ver originalDim Semanas(55) As Single
Private Sub IndicesSemanas()
Dim Registro As Single
For Registro = 1 To LOF(Numero) / 94
Get #Numero, Registro, Horas
' Si Semanas(x) tiene valor ya he leido el primer registro de esta semana
' por lo tanto no le signo el valor del actual. Solo el Primero como quieres tu
If Semanas(Horas.Semana) = 0 Then Semanas(Horas.Semana) = Registro
Next
' En un bucle posterior sabemos que si Semanas(1) o Semanas(5) o Semanas(x) son = 0 No tienen Registros
' Si son distintos de cero empieza en ese registro
End Sub