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

Google Sheets物流场景onEdit脚本需求:记录时间+单元格条件着色

Google Sheets 物流表格自动化解决方案(基于onEdit()脚本)

直接给你能实现所有需求的Google Apps Script代码,性能比数组公式好很多,不会卡顿:

function onEdit(e) {
  const sheet = e.source.getActiveSheet();
  const editedCell = e.range;
  const colIndex = editedCell.getColumn();
  const value = editedCell.getValue().toString().trim();
  
  // 定义需要监控的列及其对应的时间戳列(列索引从1开始)
  const targetColumns = {
    2: 3,   // B列对应C列
    6: 7,   // F列对应G列
    10: 11  // J列对应K列
  };

  // 1. 处理时间戳逻辑:仅首次输入时记录时间
  if (targetColumns[colIndex]) {
    const timestampCol = targetColumns[colIndex];
    const timestampCell = sheet.getRange(editedCell.getRow(), timestampCol);
    
    // 只有当时间戳单元格为空时,才写入当前时间
    if (timestampCell.getValue() === "") {
      timestampCell.setValue(new Date());
      // 可选:设置时间戳格式为你需要的样式,比如"yyyy-MM-dd HH:mm"
      timestampCell.setNumberFormat("yyyy-MM-dd HH:mm");
    }

    // 2. 处理单元格背景色逻辑
    if (value === "" || value.includes("VN")) {
      editedCell.setBackground("white");
    } else if (value !== "") {
      editedCell.setBackground("red");
    }
  }
}

使用步骤

  1. 打开你的Google Sheets表格,点击顶部菜单栏的「扩展程序」→「Apps 脚本」
  2. 清空编辑器里默认的代码,粘贴上面的代码
  3. 点击左上角的「保存」按钮,给你的脚本项目起个名字(比如「物流表格自动化」)
  4. 关闭脚本编辑器,回到表格测试:在B/F/J列输入内容,看相邻列是否自动加时间,单元格背景是否符合规则

关键优化点

  • 只在指定列被编辑时才触发逻辑,不会像数组公式那样全表循环计算,彻底解决卡顿问题
  • 时间戳仅在首次输入时写入,后续修改内容不会更新时间,符合需求
  • 格式设置和时间戳处理整合在同一个触发器里,减少重复操作
  • 自动适配所有工作表,不管你新建多少个工作表,只要编辑指定列都会生效

注意事项

  • 脚本用的是简单触发器,不需要额外授权,手动编辑单元格时会自动触发
  • 时间戳的时区是脚本项目的默认时区,你可以在脚本编辑器的「设置」→「项目设置」里修改时区
  • 如果需要批量导入数据后自动应用格式和时间戳,简单触发器可能无法触发,这时候需要创建「可安装触发器」(不过日常手动编辑足够用)

内容的提问来源于stack exchange,提问作者Artorias the Abysswalker

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.18 16:31:04