In questo articolo, abbiamo condiviso il codice VBA per scrivere una funzione personalizzata per estrarre il nome del file e il nome della cartella dal percorso del file.

I dati grezzi per questo esempio specificano il percorso completo di alcuni file.

RawData

Spiegazione logica

In questo esempio, abbiamo creato la funzione personalizzata VBA “FileOrFolderName” che restituisce il nome del file o della cartella come output.

La funzione “FileOrFolderName” accetta due parametri come input. Il primo parametro prende il percorso del file come input. Il secondo parametro prende il valore booleano come input, se vogliamo il nome del file come output, assegneremo il valore True a questo parametro e se vogliamo il nome della cartella come output, assegneremo il valore False a questo parametro.

Per separare il nome del file e il nome della cartella dal percorso del file, in primo luogo, troviamo la posizione dell’ultima occorrenza del separatore di percorso all’interno del percorso del file. Dopo l’ultima occorrenza del separatore di percorso, possiamo facilmente separare il nome del file e il nome della cartella come testo. Sul lato destro del separatore di percorso c’è il nome del file e il testo sul lato sinistro del separatore di percorso è il nome della cartella.

Se non esiste alcun separatore di percorso nel percorso del file, il percorso della directory predefinito viene specificato come nome della cartella.

Esecuzione della funzione personalizzata

Per utilizzare la funzione personalizzata definita, vai alla cella C14 e inserisci la funzione = FileOrFolderName (B14, FALSE) e nella cella D14, inserisci la funzione = FileOrFolderName (B14, TRUE), dove la cella B14 contiene il percorso del file.

La cella C14 darà il nome della cartella e la cella D14 darà il nome del file.

ArrowAfterRunningMacro

Segui sotto per il codice

Function FileOrFolderName(InputString As String, _

ReturnFileName As Boolean) As String



'Returns the foldername or the filename based on boolean value assigned

Dim i As Integer, FolderName As String, FileName As String

i = 0

'Code used for finding the position of last occurence of path separator

While InStr(i + 1, InputString, Application.PathSeparator) > 0

i = InStr(i + 1, InputString, Application.PathSeparator)

Wend

'Extract the folder path

'If No occurence of path separator is found then assign the default directory path

If i = 0 Then

FolderName = CurDir

Else

FolderName = Left(InputString, i - 1)

End If

'Extracting the file name

FileName = Right(InputString, Len(InputString) - i)

'Returning the folder or file name from function based on ReturnFileName parameter

If ReturnFileName Then

FileOrFolderName = FileName

Else

FileOrFolderName = FolderName

End If

End Function

Se ti è piaciuto questo blog, condividilo con i tuoi amici su Facebook e Facebook.

Ci piacerebbe sentire la tua opinione, facci sapere come possiamo migliorare il nostro lavoro e renderlo migliore per te. Scrivici a [email protected]