在本文中,我们共享了VBA代码,用于编写自定义函数以从文件路径中提取文件名和文件夹名。

此示例的原始数据指定某些文件的完整路径。

RawData

逻辑解释

在此示例中,我们创建了VBA自定义函数“ FileOrFolderName”,该函数返回文件或文件夹名称作为输出。

“ FileOrFolderName”函数采用两个参数作为输入。第一个参数以文件路径作为输入。第二个参数以布尔值作为输入,如果我们要文件名作为输出,则将为该参数分配True值,如果我们要为文件夹名作为输出,则将为该参数分配False值。

为了从文件路径中分离文件名和文件夹名,首先,我们找到文件路径中最后出现路径分隔符的位置。在最后一次出现路径分隔符之后,我们可以轻松地将文件名和文件夹名分隔为文本。路径分隔符的右侧是文件名,路径分隔符的左侧是文件夹名。

如果文件路径中不存在路径分隔符,则将默认目录路径指定为文件夹名称。

执行自定义功能

要使用定义的自定义函数,请转到单元格C14并输入函数= FileOrFolderName(B14,FALSE),然后在单元格D14中输入函数= FileOrFolderName(B14,TRUE),其中单元格B14包含文件路径。

单元格C14将提供文件夹名称,单元格D14将提供文件名称。

ArrowAfterRunningMacro

请遵循以下代码

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

如果您喜欢此博客,请在Facebook和Facebook上与您的朋友分享。

我们很希望收到您的来信,请让我们知道我们如何才能改善我们的工作并使您的工作更好。写信给我们[email protected]