Extraindo o nome do arquivo e o nome da pasta do caminho do arquivo usando VBA no Microsoft Excel

Anonim

Neste artigo, compartilhamos o código VBA para escrever uma função personalizada para extrair o nome do arquivo e o nome da pasta do caminho do arquivo.

Os dados brutos para este exemplo especificam o caminho completo de certos arquivos.

Explicação lógica

Neste exemplo, criamos a função personalizada do VBA “FileOrFolderName” que retorna o nome do arquivo ou pasta como saída.

A função “FileOrFolderName” leva dois parâmetros como entrada. O primeiro parâmetro leva o caminho do arquivo como entrada. O segundo parâmetro leva o valor booleano como entrada, se quisermos o nome do arquivo como saída, atribuiremos o valor True a esse parâmetro e, se quisermos o nome da pasta como saída, atribuiremos o valor False a esse parâmetro.

Para separar o nome do arquivo e o nome da pasta do caminho do arquivo, em primeiro lugar, encontramos a localização da última ocorrência do separador de caminho dentro do caminho do arquivo. Após a última ocorrência do separador de caminho, podemos facilmente separar o nome do arquivo e o nome da pasta como texto. No lado direito do separador de caminho está o nome do arquivo e o texto no lado esquerdo do separador de caminho está o nome da pasta.

Se nenhum separador de caminho existir no caminho do arquivo, o caminho do diretório padrão será especificado como o nome da pasta.

Executando a função personalizada

Para usar a função personalizada definida, vá para a célula C14 e insira a função = FileOrFolderName (B14, FALSE) e na célula D14, insira a função = FileOrFolderName (B14, TRUE), onde a célula B14 contém o caminho do arquivo.

A célula C14 fornecerá o nome da pasta e a célula D14 fornecerá o nome do arquivo.

Siga abaixo para o código

 Função FileOrFolderName (InputString As String, _ ReturnFileName As Boolean) As String 'Retorna o nome da pasta ou o nome do arquivo com base no valor booleano atribuído Dim i As Integer, FolderName As String, FileName As String i = 0' Código usado para encontrar a posição do último ocorrência do separador de caminho Enquanto InStr (i + 1, InputString, Application.PathSeparator)> 0 i = InStr (i + 1, InputString, Application.PathSeparator) Wend 'Extraia o caminho da pasta' Se nenhuma ocorrência de separador de caminho for encontrada, atribua o caminho do diretório padrão If i = 0 Then FolderName = CurDir Else FolderName = Left (InputString, i - 1) End If 'Extraindo o nome do arquivo FileName = Right (InputString, Len (InputString) - i)' Retornando o nome da pasta ou arquivo da função baseada no parâmetro ReturnFileName If ReturnFileName Then FileOrFolderName = FileName Else FileOrFolderName = FolderName End If End Function 

Se você gostou deste blog, compartilhe com seus amigos no Facebook. Além disso, você pode nos seguir no Twitter e no Facebook.

Gostaríamos muito de ouvir de você, diga-nos como podemos melhorar nosso trabalho e torná-lo melhor para você. Escreva para nós no site de e-mail