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

需求:实现每日自动增量复制粘贴单元格区域的Google Apps Script宏

自动化每日收入进度静态快照方案

修改后的宏代码

以下代码会自动根据当前日期计算对应行号(1月1日对应第1行,以此类推),将目标行的公式内容转换为静态值,完成快照存储:

/** @OnlyCurrentDoc */
function copyIncomeSnapshot() {
  const spreadsheet = SpreadsheetApp.getActive();
  const today = new Date();
  // 计算当天是当年的第几天(1月1日返回1)
  const dayOfYear = getDayOfYear(today);
  
  // 构造动态范围:E列到BR列,对应当年第N天的行
  const targetRange = spreadsheet.getRange(`E${dayOfYear}:BR${dayOfYear}`);
  // 将该范围的内容复制为值覆盖原位置(把公式转成静态数据)
  targetRange.copyTo(targetRange, SpreadsheetApp.CopyPasteType.PASTE_VALUES, false);
}

// 辅助函数:计算日期是当年的第几天
function getDayOfYear(date) {
  const startOfYear = new Date(date.getFullYear(), 0, 1);
  const timeDiff = date - startOfYear;
  const days = Math.floor(timeDiff / (1000 * 60 * 60 * 24)) + 1;
  return days;
}

行号调整说明

如果你的表格中1月1日对应的不是第1行(比如原宏用的第47行),只需修改行号计算逻辑:
比如起始行是47,那么将const targetRange = ...这行改为:

const startRow = 47; // 你的1月1日对应的行号
const targetRange = spreadsheet.getRange(`E${startRow + dayOfYear - 1}:BR${startRow + dayOfYear - 1}`);

设置定时自动触发

  1. 打开目标Google表格,点击顶部菜单栏「扩展程序」→「Apps脚本」
  2. 在脚本编辑器左侧,点击「触发器」图标(时钟样式)
  3. 点击右下角「添加触发器」,按以下配置设置:
    • 选择函数:copyIncomeSnapshot
    • 部署类型:Head
    • 事件源:时间驱动
    • 时间基于:日计时器
    • 选择一天中的执行时间(建议选数据更新完成后的时段,比如凌晨2点)
  4. 点击「保存」,按提示完成脚本权限授权即可

内容的提问来源于stack exchange,提问作者Daniel Carroll

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.17 05:42:19