让灵犀帮我创作
才思如泉涌
WPS宏自动化:批量重命名Excel工作簿的高效方法 点击使用AI助手 了解更多
发布于 2025-01-06 liusiyang 32 编辑
AI 智能搜索
【案例】以下是一堆杂乱无章的表格文件,单从文件名,无法看出什么,只有打开表格,才能从D2单元格中看出其名称。
【结果】现在我们需要以D2单元格的内容对工作簿进行命名,结果如下:
【操作效果】具体操作效果如下:
【代码】具体代码如下,可按ALT+F11打开WPS宏编辑器,复制下面的代码粘贴到编辑器中。
function 获取原文件名() {
Application.ScreenUpdating=false //关闭屏幕刷新
Application.DisplayAlerts=false //关闭提醒
let sh=ThisWorkbook.ActiveSheet //将当前活动工作表赋值给对象sh
p=ThisWorkbook.Path +'/命名后/' //获取当前工作表下的“命名后”文件夹路径
n=sh.Range('a65535').End(xlUp).Row //获取活动工作表最后一行的行号
dw=sh.Range('b1').Value2 //获取B1单元格的内容
let fd = Application.FileDialog(msoFileDialogFilePicker) //打开文件选择器
fd.Filters.Clear() //清除文件选择器内容
fd.Filters.Add('Excel文件', '*.xls;*.xlsx;*.xlsm') //显示EXCEL文件
fd.Title = '请选文件' //设置文件选择器标题
if (fd.Show() != -1) { //如果不选择任何文件
alert('你没选中文件!') //弹出提示
return; //结束退出函数
}
sh.Range('a4:b65535').Value2='' //清空A:B区域
for (let i = 0; i < fd.SelectedItems.Count; i++) { //遍历文件
let f=fd.SelectedItems.Item(i + 1) //将文件名赋值给变量f
let wb = Workbooks.Open(f) //打开工作簿,赋值给对象wb
let dw1 = wb.ActiveSheet.Range(dw).Value2 //获取打开表格指定位置的内容
sh.Cells.Item(i+4,'a').Value2=f //将原文件名写入当前工作表的A列
sh.Cells.Item(i+4,'b').Value2=dw1 //将指定单元格内容写入当前工作表的B列
wb.SaveAs(p+dw1+'.xlsx') //以指定单元格内容另存工作簿
wb.Close(false) //关闭工作表
}
Application.DisplayAlerts=true //开启提醒
Application.ScreenUpdating=true //开启屏幕刷新
alert('命名成功!') //弹出提示
}
【素材下载】点击下方链接,下载文件到本地文件夹,在本地文件夹中打开,点击“表格批量命名”按钮,选择表格文件,即可实现以指定单元格内容对表格进行命名。
https://www.kdocs.cn/l/cjirj2bn8Rkr
原文链接:https://bbs.wps.cn/topic/9545