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

Google Sheets编辑行时复制指定单元格并添加时间戳问题

解决Google Sheets编辑行时同步数据并添加时间戳的问题

问题说明

在Main工作表编辑任意行时,需要将该行的道路名称、电话同步到Updates工作表,同时在Updates的C列添加当前编辑的时间戳,现有onEdit脚本仅能同步数据,缺少时间戳功能。

修改后的完整脚本

替换原有onEdit函数为以下代码:

function onEdit(e) {
  const editRange = e.range;
  const sourceSheet = editRange.getSheet();

  // 仅响应Main工作表的编辑事件
  if (sourceSheet.getName() !== "Main") return;

  const rowNum = editRange.getRow();
  // 请根据实际列位置修改参数:getRange(行号, 列号),1=A列、2=B列...
  const roadName = sourceSheet.getRange(rowNum, 1).getValue();
  const phone = sourceSheet.getRange(rowNum, 2).getValue();

  const targetSheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Updates");
  if (!targetSheet) {
    SpreadsheetApp.getUi().alert("未找到Updates工作表,请确认名称拼写");
    return;
  }

  // 获取当前时间戳,可自定义格式
  const editTime = new Date();
  // 如需自定义时间格式,替换上面一行为:
  // const editTime = Utilities.formatDate(new Date(), Session.getScriptTimeZone(), "yyyy-MM-dd HH:mm:ss");

  // 追加数据到Updates表末尾
  targetSheet.appendRow([roadName, phone, editTime]);
}

关键配置说明

  • 列位置调整:如果道路名称、电话不在A、B列,修改getRange(rowNum, 1)和getRange(rowNum, 2)中的列号(例如道路在C列则写3)
  • 时间格式自定义:取消代码中注释行的注释,替换默认的new Date(),即可生成如2024-05-20 14:30:00格式的时间戳
  • 触发限制:脚本仅在编辑Main工作表时执行,其他工作表的编辑不会触发同步逻辑

验证操作

  1. 打开目标Google Sheets文件,点击顶部菜单栏「扩展程序」→「Apps脚本」
  2. 删除原有脚本代码,粘贴上述代码,点击保存按钮并命名项目
  3. 返回Main工作表,编辑任意一行的内容
  4. 切换到Updates工作表,查看是否已新增包含道路名称、电话和时间戳的行

内容的提问来源于stack exchange,提问作者IVMC Peabody

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 23:45:23