21/05/2017

Função para lidar com Nomes de Arquivos

Segue aqui três funções que precisei criar em uma ocasião.

Elas servem para lidar com nomes de arquivos, exatamente como no exemplo a seguir:
A célula A1 contém o seguinte texto: C:\Pasta1\Subpasta1\ArquivoTeste.txt
Nesse caso, cada função irá retornar um resultado diferente, baseado no exemplo anterior.
A seguir, demonstro o resultado de cada função, caso estas sejam inseridas da seguinte forma em outras células:

=FILENAME(A1) resultaria em: ArquivoTeste
=FILEXT(A1) resultaria em: .txt  
=FILEDIR(A1) resultaria em: C:\Pasta1\Subpasta1\

Segue agora as funções para serem inseridas em um módulo VBA, através do "Alt + F11":


Public Function FILENAME(ByVal flname As String) As String
Dim FILEX As String
FILEX = StrReverse(Mid(StrReverse(flname), 1, WorksheetFunction.Find("\", StrReverse(flname), 1) - 1))
FILENAME = StrReverse(Mid(StrReverse(FILEX), WorksheetFunction.Find(".", StrReverse(FILEX), 1) + 1, 500))
End Function

Public Function FILEXT(ByVal flname As String) As String
Dim FILEX As String
FILEX = StrReverse(Mid(StrReverse(flname), 1, WorksheetFunction.Find("\", StrReverse(flname), 1) - 1))
FILEXT = StrReverse(Mid(StrReverse(FILEX), 1, WorksheetFunction.Find(".", StrReverse(FILEX), 1)))
End Function

Public Function FILEDIR(ByVal flname As String) As String
Dim FILEX As String
FILEDIR = StrReverse(Mid(StrReverse(flname), WorksheetFunction.Find("\", StrReverse(flname), 1), 500))
End Function

É isso!

Nenhum comentário:

Postar um comentário

Dica: Criando Diretórios no Windows (Pastas e Subpastas)

Certa vez, precisei criar uma árvore de pastas no Windows. Lembro-me de ter sido uma tarefa bastante exaustiva, pois envolvia 200 pastas, e ...