你好,我是刘卓。欢迎来到我的公号,excel函数解析。今天要和你分享的函数是files。它也是一个宏表函数,可以提取指定路径下的所有文件名。后续结合DOS命令可以批量修改文件名;还可以配合hyperlink函数制作可跳转的文件目录。
函数说明
files返回指定路径下的所有文件名的水平数组。语法如下,只有1个参数:
directory_text:指定一个返回文件名的路径。如果省略,默认返回当前工作簿所在路径下的所有文件名。而且它像hyperlink一样支持相对路径。
示例解释
它的表示方法为=files(路径\文件名.后缀)。
E:\图片\是指文件所在的路径,要注意的是路径后面要有斜杠\。*.*是指所有类型的文件。第1个*是文件名,第2个*是文件的类型,也就是后缀。文件名和后缀可以使用通配符*和?。
1.批量修改文件名
在e盘下有个名称为图片的文件夹,里边存放了一些图片。现在要批量的给这些图片改名。改名的方式也简单,就是在原来的名称前面添加"素材—"这3个字符。比如[白蛇缘起]改名为[素材—白蛇缘起]。
其实这个问题要分2步,第1步提取出这个文件夹下的所有文件名,第2步用dos命令批量改名。
定义一个名称wjm,在引用位置输入公式=FILES("E:\图片\*.*")&T(NOW())。这个名称返回的结果就是指定路径下的所有文件名,是一个水平数组。
提取文件名的公式为=IFERROR(INDEX(wjm,ROW(A1)),"")。用index从所有文件名的数组中依次提取第1个文件名,第2个文件名。。。一直提取完。当所有的文件名被提取完后,公式向下拖动会产生错误值。所以用iferror来处理下错误。
再来看第2步→用DOS命令批量改名
在B5单元格输入公式=IF(A5="","","ren"&" "&A5&" "&"素材—"&A5)。if的作用是用来判断,如果A列的单元格是空,那么让B列的单元格也显示为空,否则就显示为DOS命令。
"ren"&" "&A5&" "&"素材—"&A5这部分如果写成中文的话就是"ren"&"空格"&旧文件名&"空格"&新文件名。
"ren"就是"rename"的简写,重命名的意思。上面的命令就是将旧文件名改为新文件名。
复制B5:B11,在图片的文件夹下新建一个txt文档。打开,将B5:B11粘贴到txt中,保存,关闭。然后将txt的后缀改为bat,弹出对话框,点是,文档变为一个齿状的文件。双击这个齿状的文件,奇迹发生了。所有文件的名称都改变了。
最后将excel保存为启用宏的工作簿,后缀为.xlsm。
链接:
https://pan.baidu.com/s/1bOLrOgAsLu_sdmAdpSwNUQ