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

求助:Google Apps Script实现D列修改时A列计数与B列时间戳(多工作表适配)

解决Google Sheets多工作表D列修改时A列计数+B列时间戳问题

核心需求回顾

当D列(日期列)被修改时:

  • B列自动添加时间戳(当前已正常运行,脚本可兼容原有逻辑)
  • A列记录对应单元格的修改次数,且功能适配所有月份命名的工作表

解决方案:Google Apps Script 实现

替换原有脚本(或新增)以下代码,实现多工作表适配的计数功能:

function onEdit(e) {
  const editedRange = e.range;
  const activeSheet = editedRange.getSheet();
  
  // 仅触发D列(第4列)修改,且工作表为月份命名(如"1月""2月",可根据实际命名规则调整正则)
  if (editedRange.getColumn() !== 4 || !/^\d+月$/.test(activeSheet.getName())) return;
  
  const targetRow = editedRange.getRow();
  const timestampCell = activeSheet.getRange(targetRow, 2); // B列时间戳单元格
  const countCell = activeSheet.getRange(targetRow, 1); // A列计数单元格
  
  // 保留B列时间戳逻辑(若原有逻辑需保留,可替换此段)
  if (!timestampCell.getValue()) {
    timestampCell.setValue(new Date());
  }
  
  // 更新A列修改次数:空值设为1,已有值则+1
  const currentCount = countCell.getValue();
  countCell.setValue(currentCount ? currentCount + 1 : 1);
}

部署步骤

  1. 打开目标Google表格,点击顶部菜单栏「扩展程序」→「Apps脚本」
  2. 删除编辑器内的默认代码,粘贴上述脚本
  3. 点击「保存」,给项目命名(如TimestampAndCounter)
  4. 关闭脚本编辑器,回到表格修改D列即可测试功能

关键调整说明

  • 多工作表适配:通过正则表达式/^\d+月$/匹配月份命名的工作表,若你的月份表是英文命名(如January),可将正则改为/^(January|February|March|April|May|June|July|August|September|October|November|December)$/;若需适配所有工作表,直接删除|| !/^\d+月$/.test(activeSheet.getName())这段判断
  • 计数逻辑修复:直接读取A列当前值,空值初始化1,非空则累加,避免原有逻辑的计数错误
  • 时间戳兼容:保留原有“首次修改添加时间戳”的逻辑,若需要每次修改都更新时间戳,删除if (!timestampCell.getValue())判断,直接设置timestampCell.setValue(new Date())

内容的提问来源于stack exchange,提问作者Sarah Nicole

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.30 21:32:47