Google Sheets脚本需求:每日生成仅值副本并按规则重命名
实现Google Sheets定时复制工作表(仅保留数值)
完整脚本代码
function copySheetWithValues() { // 配置参数:修改这里的原工作表名称 const SOURCE_SHEET_NAME = "原工作表名称"; // 获取当前表格对象 const ss = SpreadsheetApp.getActiveSpreadsheet(); // 获取源工作表 const sourceSheet = ss.getSheetByName(SOURCE_SHEET_NAME); if (!sourceSheet) { SpreadsheetApp.getUi().alert(`未找到名为「${SOURCE_SHEET_NAME}」的工作表,请检查名称是否正确`); return; } // 生成新工作表名称:当日日期(yyyy-MM-dd)+原表名 const today = new Date(); const dateStr = Utilities.formatDate(today, Session.getScriptTimeZone(), "yyyy-MM-dd"); const newSheetName = `${dateStr}-${SOURCE_SHEET_NAME}`; // 避免创建重复名称的工作表 if (ss.getSheetByName(newSheetName)) { SpreadsheetApp.getUi().alert(`已存在名为「${newSheetName}」的工作表,操作终止`); return; } // 复制源工作表 const newSheet = sourceSheet.copyTo(ss); // 修改新表名称 newSheet.setName(newSheetName); // 把新表内容转为纯数值(清除公式) const range = newSheet.getDataRange(); range.setValues(range.getValues()); }
脚本使用步骤
- 打开目标Google Sheets文档,点击顶部菜单栏「扩展程序」→「Apps 脚本」,进入脚本编辑器
- 删除编辑器里的默认代码,粘贴上面的完整代码
- 修改代码第一行的
SOURCE_SHEET_NAME为你要复制的工作表的准确名称(比如"销售统计") - 点击编辑器顶部的「保存」按钮,给项目起一个任意名称(比如"定时复制工具")
- 点击编辑器顶部的运行按钮▶️,第一次运行会触发权限授权:
- 点击「查看权限」
- 选择你的Google账号
- 点击「高级」→「转到XXX项目(不安全)」(这是自定义脚本的正常授权流程,安全可信)
- 点击「允许」完成授权
- 授权后再次运行脚本,检查是否成功生成带日期的新工作表,且新表中只有数值没有公式
设置每日23点自动执行
- 在脚本编辑器左侧,点击「触发器」图标⏰(时钟形状)
- 点击右下角「添加触发器」按钮,按以下配置:
- 要运行的函数:
copySheetWithValues - 部署来源:
Head - 事件源:
时间驱动 - 时间类型:
日计时器 - 时间:
23:00 到 24:00
- 要运行的函数:
- 点击「保存」,定时任务设置完成
注意事项
- 源工作表名称必须拼写完全一致,包括大小写和空格
- 如果脚本运行失败,优先检查是否已存在同名的目标工作表(比如当天已经手动运行过一次)
- 日期时区默认使用你的Google账号时区,若需固定时区,可将
Session.getScriptTimeZone()改为指定时区(比如"Asia/Shanghai")
内容的提问来源于stack exchange,提问作者Derek Pollard
相关产品推荐
相关产品推荐

