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

Google Sheets:复制粘贴新增行时自动填入固定当前日期

解决Google Sheets复制粘贴行时自动填充固定日期的问题

问题根源

你当前使用的onEdit(e)是简单触发器,仅对单个单元格的手动编辑操作生效,无法捕获复制粘贴、批量插入行这类批量变更行为,因此需要改用onChange(e)触发器来覆盖这类场景。

修改后的可用脚本

替换原有脚本为以下代码,它能处理复制粘贴新增行的需求:

function onChange(e) {
  // 仅处理插入行或编辑类变更,且目标工作表为"Operational Sheet"
  if (!['INSERT_ROWS', 'EDIT'].includes(e.changeType)) return;
  const targetSheet = e.source.getActiveSheet();
  if (targetSheet.getName() !== "Operational Sheet") return;

  // 获取变更涉及的行范围
  const range = e.range;
  const startRow = range.getRow();
  const rowCount = range.getNumRows();
  const fixedDate = Utilities.formatDate(new Date(), "GMT+9:00", "dd.MM.yyyy");

  // 批量填充C列对应行的固定日期
  targetSheet.getRange(startRow, 3, rowCount, 1).setValue(fixedDate);
}

关键配置步骤

onChange属于可安装触发器,需要手动配置才能生效:

  • 打开目标表格的「扩展程序」→「Apps脚本」
  • 粘贴上述代码后,保存项目(可自定义名称,比如"AutoFillFixedDate")
  • 点击编辑器顶部的闹钟图标(触发器管理入口)
  • 点击「添加触发器」,按以下参数配置:
    • 选择函数:onChange
    • 部署类型:「头部部署」(选择最新版本)
    • 事件源:「从电子表格」
    • 事件类型:「更改」
  • 完成授权验证(首次授权需按提示完成权限确认)

功能说明

  • 复制粘贴行到"Operational Sheet"、手动插入行时,C列对应行都会自动填入固定的当前日期(不会随时间动态更新)
  • 支持批量操作,一次性处理所有新增行的日期填充
  • 日期格式与时区保持你原脚本的设置:dd.MM.yyyy、GMT+9

内容的提问来源于stack exchange,提问作者Thurman Murman

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 13:59:57