JS宏选择文件夹,获取所有文件名并生成超链接

懒人办公

创作者俱乐部成员

【运行效果】

选择文件夹,获取文件夹下的所有文件名称,并为每个文件生成超链接。

【JSA代码】

按ALT+F11打开WPS宏编辑器,复制下方代码粘贴到编辑器中。

👉

//定义一个自定义函数,用于选择文件夹

function GetFolder(defaultpath){

Application.ScreenUpdating=false //关闭屏幕刷新,否则弹不出对话框

var fb=Application.FileDialog(msoFileDialogFolderPicker); //获取文件选择框

fb.InitialFileName = defaultpath //设置默认文件夹

fb.Show(); //显示文件夹

Application.ScreenUpdating=true //开启屏幕刷新

if(fb.SelectedItems.Count>0){ //判断是否选择了文件夹

return fb.SelectedItems(1); //返回所选择的文件夹

}else{

return null; //若为未任何选择,则返回空值

}

}

//获取文件夹下的文件,并生成超链接

function 选择文件夹生成文件超链接(){

p=GetFolder(ThisWorkbook.Path); //调用GetFolder函数选择文件夹,赋值给变量p

if(p==null) return; //若未选择文件夹,则退出程序

Range('a:a').Clear(); //清空A列内容

f=Dir(p+'\\'); //遍历文件夹中的所有文件

i=1; //定义一个变量,表示行号,即从第1行开始写入

while(f){ //按文件名循环

//在A列创建文件的超链接

ActiveSheet.Hyperlinks.Add(Cells.Item(i,1),p+'\\'+f,undefined,undefined,f);

i++; //行号加1,即从下一行开始写入

f=Dir() //获取下一个文件名

}

}

【素材下载】

https://kdocs.cn/l/ctQ7usEeZfzt

贵州省
浏览 7001
19
76
分享
76 +1
76
19 +1
全部评论 76
 
可以获取文件夹的链接吗?
· 广东省
回复
 
学到了
· 广东省
回复
 
感谢分享
· 浙江省
回复
 
很有用
· 陕西省
回复
 
可以可以
· 河南省
回复
 
很实用,又学到了一个方法
· 安徽省
回复
 
很实用的技巧,点赞
· 四川省
回复
 
厉害👍🏻
· 广东省
回复
 
牛的牛的有用
· 江西省
回复
 
又学到了一项,慢慢学习,慢慢成长
· 河北省
回复
 
5,太实用了
· 福建省
回复
 
实用,点赞
· 湖北省
回复
 
好用不错
· 湖南省
回复
 
好用
· 山西省
回复
 
很实用,又学到了一项
· 吉林省
回复
 
学到了!👏
· 内蒙古
回复
 
厉害,很方便
· 云南省
回复
 
优秀
· 广西
回复
 
优秀
· 山东省
回复
 
很好
· 福建省
回复