Sto usando msoFileDialogFolderPicker per restituire un percorso quando un utente desidera depositare un rapporto in una cartella specifica.
Un modulo personalizzato (ufSelRepType) viene visualizzato nella macro nei casi in cui la posizione di salvataggio predefinita ha già un file di output o quando l'utente non desidera salvare nella posizione predefinita. Il modulo personalizzato specifica alcune posizioni di salvataggio comuni dei rapporti e offre la possibilità di selezionare una posizione alternativa. Facendo clic sul pulsante cmdCustom effettua le seguenti operazioni:
Private Sub cmdCustom_Click()
Application.FileDialog(msoFileDialogFolderPicker).Show
Me.Tag = CurDir
Me.Hide
End Sub
Il codice nella macro per gestire l'output del modulo è semplice:
strSavePath = ufSelRepType.Tag
Selezionando una cartella, la stringa viene sempre restituita senza "\" finale. Tuttavia, se viene selezionata una radice dell'unità (utilizziamo unità mappate sul nostro file server e quindi, sebbene questo caso possa essere raro, non è uno scenario inconciliabile) la stringa restituita termina con un "\".
Come potrei fare per verificare la presenza del "\" finale e gestirlo?
AGGIORNAMENTO: per soluzione di seguito, questo è il nuovo codice per il controllo modulo cmdCustom:
Private Sub cmdCustom_Click()
Dim strFolderPath As String
'Getting save folder
Application.FileDialog(msoFileDialogFolderPicker).Show
strFolderPath = CurDir
'Checking that path ends in \
If Right(strFolderPath, 1) = "\" Then
GoTo Complete
Else:
strFolderPath = strFolderPath & "\"
GoTo Complete
End If
Exit Sub
Complete:
Me.Tag = strFolderPath
Me.Hide
Exit Sub
End Sub