在Excel中使用VBA文件路径中提取文件名和文件夹名
在本文中,我们共享了VBA代码,用于编写自定义函数以从文件路径中提取文件名和文件夹名。
此示例的原始数据指定某些文件的完整路径。
逻辑解释
在此示例中,我们创建了VBA自定义函数“ FileOrFolderName”,该函数返回文件或文件夹名称作为输出。
“ FileOrFolderName”函数采用两个参数作为输入。第一个参数以文件路径作为输入。第二个参数以布尔值作为输入,如果我们要文件名作为输出,则将为该参数分配True值,如果我们要为文件夹名作为输出,则将为该参数分配False值。
为了从文件路径中分离文件名和文件夹名,首先,我们找到文件路径中最后出现路径分隔符的位置。在最后一次出现路径分隔符之后,我们可以轻松地将文件名和文件夹名分隔为文本。路径分隔符的右侧是文件名,路径分隔符的左侧是文件夹名。
如果文件路径中不存在路径分隔符,则将默认目录路径指定为文件夹名称。
执行自定义功能
要使用定义的自定义函数,请转到单元格C14并输入函数= FileOrFolderName(B14,FALSE),然后在单元格D14中输入函数= FileOrFolderName(B14,TRUE),其中单元格B14包含文件路径。
单元格C14将提供文件夹名称,单元格D14将提供文件名称。
请遵循以下代码
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]