首页 > 解决方案 > 谷歌应用脚​​本通知工作表特定选项卡上的更改?

问题描述

当对工作表的特定选项卡进行更改时,我正在尝试在 google 工作表上创建通知规则。

我找到了一些谷歌应用脚​​本并对其进行了调整,但我继续收到如下错误消息。可以做些什么来解决这个问题?

TypeError:无法读取未定义的属性“changeType”

代码:

    function notify(e) {
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet().getName();
  if (sheet == 'Analytics Project' && e.changeType == 'INSERT_ROW') {
    MailApp.sendEmail('test@gmail.com', 'Row Added', 'A row was added to your sheet.');
  }
}

标签: google-apps-scriptgoogle-sheets

解决方案


说明/问题:

您的目标是使用onChange触发器。

您需要了解以下两个概念:

  • 触发器(顾名思义)是根据事件执行的函数。但是,您正在尝试手动执行此函数,但您不应该这样做,因为e未定义,因此您收到事件对象 e未定义的消息。因此,不要手动运行它,而是插入一个新行,你会看到你的脚本会完成它的工作。

  • 这是一个可安装的触发器,即您需要onChangenotify.

要创建可安装的触发器,只需执行一次函数createTrigger

function notify(e) {
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet().getName();
  if (sheet == 'Analytics Project' && e.changeType == 'INSERT_ROW') {
    MailApp.sendEmail('test@gmail.com', 'Row Added', 'A row was added to your sheet.');
  }
}

function createTrigger(){
  var sheet = SpreadsheetApp.getActive();
  ScriptApp.newTrigger("notify")
  .forSpreadsheet(sheet)
  .onChange()
  .create();
}

在此处输入图像描述


推荐阅读