龙空技术网

Excel获得文件名对应的扩展名

GGGGWHW 111

前言:

此刻姐妹们对“文件的扩展名不能省略吗”大致比较珍视,小伙伴们都需要了解一些“文件的扩展名不能省略吗”的相关内容。那么小编同时在网上收集了一些对于“文件的扩展名不能省略吗””的相关知识,希望我们能喜欢,你们一起来了解一下吧!

  如图所示,我们在B列获取了某文件夹下的所有文件名,现在想知道这些文件对应的文件类型或者说文件的扩展名。可以用下面的函数来实现:

  =MID(B12,FIND("\",SUBSTITUTE(B12,".","\",LEN(B12)-LEN(SUBSTITUTE(B12,".",))))+1,LEN(B12))

例子

  解释一下上面的函数=MID(B12,FIND("\",SUBSTITUTE(B12,".","\",LEN(B12)-LEN(SUBSTITUTE(B12,".",))))+1,LEN(B12))

  MID函数用来截取B12FIND()这个字符之后不超过LEN(B12)个字符组成的字符串。

  FIND("\",SUBSTITUTE(B12,".","\",LEN(B12)-LEN(SUBSTITUTE(B12,".",))))+1

  FIND函数用来寻找\SUBSTITUTE()这个字符串中的位置,+1表示在找到的位置后面一个字符位置。

  SUBSTITUTE(B12,".","\",LEN(B12)-LEN(SUBSTITUTE(B12,".",)))

  SUBSTITUTE函数用来将B12这个字符串中的第LEN(B12)-LEN(SUBSTITUTE(B12,".",)).替换成\。之所以要替换成\是因为文件名中不可能含有\

  LEN(B12)-LEN(SUBSTITUTE(B12,".",))用来计算B12.的个数。

  继续拆解的话:

  LEN(B12)表示B12的长度,LEN(SUBSTITUTE(B12,".",))表示去掉B12中的所有.后,B12的长度。两者相减后,得到.的个数。

  SUBSTITUTE(B12,".",)省略了第3个参数,表示将.替换成空,实际上就是删除.;省略了第4个参数,表示替换掉所有的.

  综上所述,思路就是:先计算B12.的个数,并将最后一个.替换成\,再在结果中找到\的位置后面的位置,然后获得这个位置之后的字符组成的字符串。

  如果要在Excel宏中截取文件名对应的扩展名,可以直接使用InStrRev函数获得文件名中最后一个.的位置,然后使用Mid函数即可。比如Str1中保存着文件名,使用下面的代码可以获得扩展名Str2

  Str2 = Mid(Str1, InStrRev(Str1, ".") + 1, Len(Str1))

  其中InStrRev(Str1, "."),表示从右向左找到第一个.的位置,需要注意的是.的位置仍然是用从左向右的数字序号表示的。

标签: #文件的扩展名不能省略吗 #文件名的扩展名可以省略吗