Yo creo que se te ha complicado el asunto, porque no utilizas funciones de fecha que seguramente te facilitarian las cosas, funciones como: WeekDay, WeekdayName, Month, Year, Monthname y algunas otras que se me escapan; en fin aqui pongo un pequeño ejemplo de como como contar los dias habiles entre una fecha inicial y una final, ojo porque solo he tomado sabados y domingos como dias no habiles:
Código:
Dim dif, i As Integer
Dim fecha_inicial, fecha_final As String
fecha_inicial = "01/04/2006"
fecha_final = "30/04/2006"
dif = CDate(fecha_final) - CDate(fecha_inicial)
For i = 1 To dif
If Weekday(CDate(fecha_inicial) + i, vbMonday) = 6 Or Weekday(CDate(fecha_inicial) + i, vbMonday) = 7 Then
dif = dif - 1
End If
Next i
MsgBox "Dias habiles = " & dif, vbInformation, "Resultado"
Espero te sirva