Extraer el nombre del archivo y el nombre de la carpeta de la ruta del archivo usando VBA en Microsoft Excel

Anonim

En este artículo, hemos compartido código VBA para escribir una función personalizada para extraer el nombre del archivo y el nombre de la carpeta de la ruta del archivo.

Los datos sin procesar de este ejemplo especifican la ruta completa de ciertos archivos.

Explicación lógica

En este ejemplo, hemos creado la función personalizada de VBA "FileOrFolderName" que devuelve el nombre del archivo o carpeta como salida.

La función "FileOrFolderName" toma dos parámetros como entrada. El primer parámetro toma la ruta del archivo como entrada. El segundo parámetro toma el valor booleano como entrada, si queremos el nombre del archivo como salida, asignaremos un valor verdadero a este parámetro y si queremos el nombre de la carpeta como salida, asignaremos un valor falso a este parámetro.

Para separar el nombre del archivo y el nombre de la carpeta de la ruta del archivo, en primer lugar, encontramos la ubicación de la última aparición del separador de ruta dentro de la ruta del archivo. Después de la última aparición del separador de ruta, podemos separar fácilmente el nombre del archivo y el nombre de la carpeta como texto. En el lado derecho del separador de ruta está el nombre del archivo y el texto en el lado izquierdo del separador de ruta es el nombre de la carpeta.

Si no existe un separador de ruta en la ruta del archivo, la ruta del directorio predeterminada se especifica como el nombre de la carpeta.

Ejecutando la función personalizada

Para usar la función personalizada definida, vaya a la celda C14 e ingrese la función = FileOrFolderName (B14, FALSE) y en la celda D14, ingrese la función = FileOrFolderName (B14, TRUE), donde la celda B14 contiene la ruta del archivo.

La celda C14 dará el nombre de la carpeta y la celda D14 dará el nombre del archivo.

Siga a continuación para obtener el código

 Función FileOrFolderName (InputString As String, _ ReturnFileName As Boolean) As String 'Devuelve el nombre de la carpeta o el nombre de archivo según el valor booleano asignado Dim i As Integer, FolderName As String, FileName As String i = 0' Código utilizado para encontrar la posición del último aparición del separador de ruta Mientras InStr (i + 1, InputString, Application.PathSeparator)> 0 i = InStr (i + 1, InputString, Application.PathSeparator) Wend 'Extrae la ruta de la carpeta' Si no se encuentra ninguna ocurrencia del separador de ruta, entonces asigne la ruta de directorio predeterminada Si i = 0 Then FolderName = CurDir Else FolderName = Left (InputString, i - 1) End If 'Extrayendo el nombre del archivo FileName = Right (InputString, Len (InputString) - i)' Devolviendo la carpeta o el nombre del archivo from función basada en el parámetro ReturnFileName Si ReturnFileName Then FileOrFolderName = FileName Else FileOrFolderName = FolderName End If End Function 

Si te gustó este blog, compártelo con tus amigos en Facebook. Además, puede seguirnos en Twitter y Facebook.

Nos encantaría saber de usted, háganos saber cómo podemos mejorar nuestro trabajo y hacerlo mejor para usted. Escríbanos al sitio de correo electrónico