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

谷歌表格自动发邮件Google Script故障排查求助

Google表格onEdit脚本自动发邮件故障排查

我编写了一段Google Script,希望在编辑谷歌表格时自动发送邮件,但脚本无法正常运行。已确认脚本关联表格、具备发邮件权限,邮件未进入垃圾邮件,附上表格截图、编辑器截图及代码,请求排查指导。

脚本代码

function onEdit(e) {
  if (!e) {
    Logger.log("No event object detected. onEdit(e) must be triggered by an actual sheet edit.");
    return;
  }

  try {
    var sheet = e.range.getSheet();
    var editedRow = e.range.getRow();
    var editedCol = e.range.getColumn();

    Logger.log("Edit detected in row " + editedRow + ", column " + editedCol);

    if (editedCol === 4) { // "Status" column
      var statusText = sheet.getRange(editedRow, editedCol).getValue();

      if (typeof statusText === 'string' && statusText.toLowerCase() === "completed") {
        var timeTaken = sheet.getRange(editedRow, 5).getValue();

        if (timeTaken) {
          var task = sheet.getRange(editedRow, 1).getValue();       // Column A
          var paymentDue = sheet.getRange(editedRow, 6).getValue(); // Column F
          var formattedDate = new Date().toLocaleString();

          var recipient = "correct@gmail.com";
          var subject = "Task Completed: " + task;
          var body =
            "Task: " + task + "\n" +
            "Completed on: " + formattedDate + "\n" +
            "Time Taken: " + timeTaken + " hrs\n" +
            "Payment Due: " + paymentDue;

          MailApp.sendEmail(recipient, subject, body);
          Logger.log("Email sent for row " + editedRow);
        }
      }
    }
  } catch (error) {
    Logger.log("Error in onEdit: " + error);
  }
}

排查方向

  • 语法错误修正:原代码中邮件内容的换行使用了错误写法,会导致JavaScript语法异常,需替换为标准换行符\n(上述代码已调整)。
  • 触发列验证:确认表格中「Status」列确实是第4列(D列),若列位置不符,修改editedCol === 4中的对应数字。
  • 状态值匹配检查:查看表格中输入的「completed」是否带有多余空格(如completed 或 Completed),或是非字符串格式(比如数据验证下拉框的值类型是否为字符串),这些都会导致状态判断不成立。
  • timeTaken逻辑调整:原代码if(timeTaken)会把数值0判定为假,若允许耗时为0的任务触发邮件,需改为if(timeTaken !== null && timeTaken !== "")。
  • 触发器类型确认:onEdit是简单触发器,仅在用户手动编辑表格时触发;如果是通过脚本/API编辑表格,需改用可安装触发器。
  • 日志排查:在脚本编辑器中打开「查看」→「日志」,检查是否有错误信息或触发记录,确认onEdit是否正常触发、哪一步逻辑未通过。

内容的提问来源于stack exchange,提问作者Alex Schueppert

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.13 09:06:14