You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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为你要复制的工作表的准确名称(比如"销售统计")
  • 点击编辑器顶部的「保存」按钮,给项目起一个任意名称(比如"定时复制工具")
  • 点击编辑器顶部的运行按钮▶️,第一次运行会触发权限授权:
    1. 点击「查看权限」
    2. 选择你的Google账号
    3. 点击「高级」→「转到XXX项目(不安全)」(这是自定义脚本的正常授权流程,安全可信)
    4. 点击「允许」完成授权
  • 授权后再次运行脚本,检查是否成功生成带日期的新工作表,且新表中只有数值没有公式

设置每日23点自动执行

  • 在脚本编辑器左侧,点击「触发器」图标⏰(时钟形状)
  • 点击右下角「添加触发器」按钮,按以下配置:
    • 要运行的函数:copySheetWithValues
    • 部署来源:Head
    • 事件源:时间驱动
    • 时间类型:日计时器
    • 时间:23:00 到 24:00
  • 点击「保存」,定时任务设置完成

注意事项

  • 源工作表名称必须拼写完全一致,包括大小写和空格
  • 如果脚本运行失败,优先检查是否已存在同名的目标工作表(比如当天已经手动运行过一次)
  • 日期时区默认使用你的Google账号时区,若需固定时区,可将Session.getScriptTimeZone()改为指定时区(比如"Asia/Shanghai")

内容的提问来源于stack exchange,提问作者Derek Pollard

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.06 21:50:17