Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

errore di run-time 5

35 views
Skip to first unread message

Giuseppe

unread,
Jun 15, 2018, 3:55:07 AM6/15/18
to
Buongiorno.
In una form ho inserito un pulsante che mi apre una finestra windows e che importa in una casella di testo il percorso e il nome del file selezionato.
La routine è:
Dim F As Object
Set F = Application.FileDialog(3)
F.AllowMultiSelect = True
F.Show
Me.PercorsoFile = F.selecteditems(1)
Il problema è che nel momento in cui non trovo il file da selezionare e clicco annulla sulla finestra windows, la routine mi restituisce errore di run-time '5:
chiamata di routine o argomenti non validi
Cosa devo inserire per impedire tale errore?
Grazie.
Giuseppe

BFS

unread,
Jun 15, 2018, 4:12:49 AM6/15/18
to
devi gestire l'errore

nel evento click del tuo pulsante metti

On Error GoTo errore
Dim F As Object
Set F = Application.FileDialog(3)
F.AllowMultiSelect = True
F.Show
Me.PercorsoFile = F.selecteditems(1)
Exit Sub
errore:
If Err.Number = 5 Then
MsgBox "Nessun file selezionato"
End If
end sub

ciao

Giuseppe

unread,
Jun 15, 2018, 4:45:57 AM6/15/18
to
Grazie tanto Fabio.
Ciao.

@Alex

unread,
Jun 15, 2018, 6:34:56 AM6/15/18
to
La collection [selecteditems], espone la proprietà COUNT... perchè non verifichi che sia>0 prima di accedere ad un suo Oggetto...?

If F.selecteditems.Count>0 then
Me.PercorsoFile = F.selecteditems(1)
End if

Ovviamente fai attenzione al Parametro MULTISELECT che hai inutilmente impostato a TRUE, dico inutilmente in quanto leggi solo un FILE il PRIMO...

@Alex

Giuseppe

unread,
Jun 18, 2018, 12:21:08 PM6/18/18
to
Grazie Alex.
In effetti avevo fatto questo tentativo ma impostando erroneamente la seguente condizione:
if isNull (F.selecteditems(1))
Poi grazie a Fabio avevo risolto, adesso so che ho due possibilità nel gestire casi come questi.
Ciao.
Giuseppe
0 new messages