Salve,uso la seguente procedura per aprire un file

codice:
'procedura per aprire il file
Public Sub aprifile()
On Error Resume Next
    Dim intDomINSP As Integer           'Variabile di MsgBox
    
  '  If FrmSP.boolVerifica10 = False And Ctr(FrmSP.Txt105SP.Text) > 0 Then   ' chiede di salvare o No
  '      intDomINSP = MsgBox("SP - Volete salvare il file ? Clic su OK per effettuare" & Chr(13) _
  '      & "l'operazione - su Annulla per aprire un nuovo file, senza salvare quello in uso.", vbExclamation + vbOKCancel, "Applicazioni Aziendali")
  '      If intDomINSP = 1 Then              'Pulsante OK
  '          Call SalvaSP   'Invia alla routine salva con nome
  '      End If
  '  End If
        
        Dim FileNum As Integer
        Dim FileTitle As String
        Dim FileName As String
        

'Variabili per Aprire il file:
        
With MDIForm1.CommonDialog1
        .CancelError = True             'Imposta CancelError su True
    On Error GoTo ErrHandler
        .Filter = "Discorsi interni (*.dsi)|*.dsi|Discorsi esterni (*.dse)|"
        .FilterIndex = 1
        .DefaultExt = "dsi"
        .Flags = cdlOFNNoChangeDir Or cdlOFNHideReadOnly Or cdlOFNFileMustExist Or cdlOFNNoReadOnlyReturn
        .DialogTitle = "Selezionare il file da aprire"
        .FileName = MDIForm1.CommonDialog1.FileName 'Imposta il Nome del file in base a quanto digitato nella prima pagina
        .InitDir = app.Path & "\save"
        .ShowOpen
ErrHandler:
        If Err.Number = 32755 Then      'é stato scelto Annulla
            boolErrAnnSP2 = True
            Exit Sub
            Else: boolErrAnnSP2 = False
        End If
        
        FileName = .FileName
        FileTitle = .FileTitle

'Visualizza nome e percorso del file in uso nella Barra di stato:
        MDIForm1.StatusBar1.Panels(1).Text = MDIForm1.CommonDialog1.FileTitle
        FileNum = FreeFile()

'Esce se l'utente ha fatto clic su annulla
            If Len(FileName) = 0 Then
                Exit Sub
            End If
    End With
    'apre il file
    estensione = Right(FileName, 3)
    Open FileName For Input As FileNum
    Select Case estensione
    Case Is = "dsi"
    Do While Not (EOF(FileNum) = True)  'Trova la fine del file
    For k = 0 To 9
    Input #FileNum, dati(k).campo1, dati(k).campo2, dati(k).campo3, dati(k).campo4, dati(k).campo5, dati(k).campo6
    Next k
    Call trovanumdiscorso
    frmstampa.Show
    savecode = True
    Loop 'Esce da DO
    Case Is = "dse"
    End Select
    Close #FileNum
End Sub
il seguente codice funziona ma non benissimo.

Mediante l'applicazione salvo due file.
Il primo viene aperto normalmente mentre nel secondo caso mi dice

codice:
variabile oggetto o variabile del bocco width non impostata
l'errore è in grassetto nel codice.successivamente insieme all'errore mi dice :

codice:
input oltre la fine del file
da cosa può dipendere?
ciao e grazie