不用vba实现从完整的路径中提取文件名和目录路径。类似于python里面的os.path.basename和os.path.dirname.给定一个路径G:\sharefolder\file_name_list.txt。要分别得到file_name_list.txt和G:\sharefolder。
工具/原料
excel
方法/步骤
1
首先需要得到所有“\”的个数。方法很简单,要用到substitute和len。令B8=“G:\sharefolder\file_name_list.txt”C8=LEN(B8)-LEN(SUBSTITUTE(B8,'\',''))=2
2
求最后一个“\”的位置,用substitute和find。方法有两种,可以采用替换查找法和空格扩展法。其中替换查找法比较简单,这里采用之。将第C8个“\”替换为特殊字符,然后查找之得到位置。令D8=find('$',SUBSTITUTE(B8,'\','$',C8)),则D8=find('$','G:\sharefolder$file_name_list.txt')=15
3
求特殊字符左边的字符串,得到目录路径=left(B8,D8-1)='G:\sharefolder'.同理,求特殊字符右边的字符串得到文件名=right(B8,len(B8)-D8)='file_name_list.txt'
4
迭代替换得到总公式。目录路径=left(B8,find('$',SUBSTITUTE(B8,'\','$',LEN(B8)-LEN(SUBSTITUTE(B8,'\',''))))-1)文件名=right(B8,len(B8)-find('$',SUBSTITUTE(B8,'\','$',LEN(B8)-LEN(SUBSTITUTE(B8,'\','')))))