Google Sheets脚本开发需求:复制主文件至指定位置并重命名
解决方案:用Google Apps Script实现自动复制并重命名表格
我懂你在Excel里做这个事儿有多顺手,但Google Sheets得靠Apps Script来实现这个功能——别担心,步骤其实挺清晰的,我给你整理好完整的脚本和操作说明:
步骤1:打开脚本编辑器
打开你的「Master file」表格,点击顶部菜单栏的 扩展程序 > Apps Script,会弹出一个新的脚本编辑器页面,把默认的myFunction()代码删掉,替换成下面的脚本。
完整脚本代码
function copyMasterSheet() { // 获取当前打开的Master表格 const masterSheet = SpreadsheetApp.getActiveSpreadsheet(); // 从A1获取新文件名,A2获取目标文件夹ID const newFileName = masterSheet.getRange("A1").getValue().trim(); const targetFolderId = masterSheet.getRange("A2").getValue().trim(); // 校验必填项是否为空 if (!newFileName) { SpreadsheetApp.getUi().alert("错误:A1单元格的新文件名不能为空!"); return; } if (!targetFolderId) { SpreadsheetApp.getUi().alert("错误:A2单元格的目标文件夹ID不能为空!"); return; } try { // 根据ID获取目标文件夹 const targetFolder = DriveApp.getFolderById(targetFolderId); // 复制Master表格到目标文件夹,并重命名 const copiedSheet = masterSheet.copyTo(targetFolder); copiedSheet.setName(newFileName); // 提示操作成功 SpreadsheetApp.getUi().alert(`表格已成功复制!新表格名称:${newFileName}`); } catch (error) { // 处理错误(比如文件夹ID无效) SpreadsheetApp.getUi().alert(`操作失败:${error.message}`); } }
关键细节说明
- 目标文件夹ID怎么找?:打开目标Google Drive文件夹,地址栏里的那段长字符串就是ID(比如
https://drive.google.com/drive/folders/ABC123xyz...里的ABC123xyz...)。用ID比用文件夹名称更可靠,能避免重名文件夹导致的错误。 - 权限授权问题:第一次运行脚本时,会弹出授权提示,你需要点击「允许」;如果出现“未经验证”的提示,点「高级」→「转到XX脚本」就能继续授权了。
- 更便捷的操作方式(可选):如果想不用每次打开脚本编辑器,能直接在表格里操作,可以加一段代码生成自定义菜单:
保存脚本后刷新表格,顶部就会出现「自定义工具」菜单,点击里面的选项就能直接运行复制功能。function onOpen() { const ui = SpreadsheetApp.getUi(); ui.createMenu("自定义工具") .addItem("复制Master表格", "copyMasterSheet") .addToUi(); }
测试步骤
- 在Master表格的A1单元格填入新表格的名称,A2填入目标文件夹的ID;
- 在脚本编辑器里点击运行按钮(▶️),选择
copyMasterSheet函数; - 按照提示完成授权,之后就能看到复制成功的弹窗提示了。
内容的提问来源于stack exchange,提问作者Nick Rabbets
相关产品推荐
相关产品推荐

