分享

hyperlink+files制作会跳转的文件目录

 刘卓学EXCEL 2021-04-02

你好,我是刘卓。欢迎来到我的公号,excel函数解析。今天继续分享hyperlink的用法,配合files可以制作带超链接的文件目录,方便我们对同一文件夹下的文件快速的调取。

比如下图有个【项目文件】的文件夹,里边存放着所有的项目文件。现在用2020.4.29这个工作簿制作文件目录,来快速地打开项目文件。

这个工作簿和项目文件】的文件夹在同一目录下,都在【资料】文件夹下。当整个【资料】文件夹被移动后,链接不会失效。

想要实现这个效果,首先要取得项目文件夹下的所有文件名,然后再用hyperlink制作超链接。

第1步:获取项目文件夹下的所有文件名

获取指定目录下的文件名可以用files这个宏表函数。可以回顾《你会批量修改指定路径下的文件名吗?》这篇文章。

既然用files就会用到路径,这里我们不用手动去电脑中查找路径,而是根据当前要制作文件目录的这个工作簿的路径来得到项目文件的路径。这样当【资料】文件夹被移动的时候,链接才不会失效。

我们可以用cell("filename")来获取当前工作簿的路径,公式为

=LEFT(CELL("filename",A1),FIND("[",CELL("filename",A1))-1)

CELL("filename",A1)返回当前工作簿的完整路径,包括工作簿和工作表名。但我们只需要前面的路径,所以用left提取,提取的长度就是左中括号的位置减1。

当前工作簿的路径得到了,项目文件的路径就好办了,在其后面连接"项目文件\"。公式为

=LEFT(CELL("filename",A1),FIND("[",CELL("filename",A1))-1)&"项目文件\"

接下来就可以用files获取所有的项目文件名了。定义一个名称wjm,引用位置输入下面的公式,这样wjm就返回所有的项目文件名了。

=FILES(LEFT(CELL("filename",A1),FIND("[",CELL("filename",A1))-1)&"项目文件\*.*")

然后用index把文件名一一提取出来,公式为=INDEX(wjm,ROW(A1))
第2步:用hyperlink制作超链接
hyperlink的第1参数是路径和文件名,我们这里用的是相对路径,所以公式为

=HYPERLINK("项目文件\"&INDEX(wjm,ROW(A1)),INDEX(wjm,ROW(A1)))

第1参数的意思就是当前工作簿所在路径下的项目文件夹下的文件名,第2参数的跳转文本还是显示为文件名,把index那段复制过来就可以了。最后用iferror处理下错误就ok了。 

友情提示:

最开始新建工作簿的时候最好就要保存为启用宏的工作簿。如果你的工作簿没有保存,cell("filename")得到的路径是空文本"",会影响后续的结果。

链接:

https://pan.baidu.com/s/1X1ENqG94vvJulOIVTs1V6w

提取码:djvb

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多