Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如果特定单元格包含的值大于(比如)10,如何触发Google电子表格脚本_Javascript_Google Apps Script_Google Sheets - Fatal编程技术网

Javascript 如果特定单元格包含的值大于(比如)10,如何触发Google电子表格脚本

Javascript 如果特定单元格包含的值大于(比如)10,如何触发Google电子表格脚本,javascript,google-apps-script,google-sheets,Javascript,Google Apps Script,Google Sheets,因此,我有一个脚本,可以启动一封电子邮件,我希望它在特定单元格A5包含超过10的值时运行。以下是脚本: function onEdit() { var sheet = SpreadsheetApp.getActiveSheet(); var rownum = 1; // #of rows var rowstart = 2; // where to start row // get range of cell // column 1 = email, column 2 is

因此,我有一个脚本,可以启动一封电子邮件,我希望它在特定单元格A5包含超过10的值时运行。以下是脚本:

function onEdit() {
  var sheet = SpreadsheetApp.getActiveSheet();
  var rownum = 1; // #of rows
  var rowstart = 2; // where to start row

  // get range of cell
  // column 1 = email, column 2 is first name
  var dataRange = sheet.getRange(rowstart, 1, rownum, 2)


  var data = dataRange.getValues()
  for (i in data) {
    if(sheet.getRange(5,1).getValue()>10){      //change row and column in get range to match what you need
      var row = data[i];
      var emailadr = row[0]; // data select
      var msgcontent = "Hey " + row[1] + ",\n Just:)chilling \n    Sent from my email"; // body
      var sbjt = "You have mail!"; //subject
      MailApp.sendEmail(emailadr, sbjt, msgcontent);}
    }
  }
在当前项目的触发器下,我有以下内容:

运行:onEdit

事件:编辑时从电子表格


现在,当我将单元格A5设置为21时,脚本不会运行。有什么问题吗?我似乎不明白。谢谢

使用记录器,它表明它确实有效。您可以在下面的示例中看到。您可能希望尝试使用基于时间的触发器,并将其设置为每隔x个时间检查一次并发送电子邮件。谷歌可能不允许sendemail运行onedit

函数onEdit{ var sheet=电子表格app.getActiveSheet; var rownum=1;//行数 var rowstart=2;//行的起始位置 //获取单元格的范围 //第1列=电子邮件,第2列是名字 var dataRange=sheet.getRangerowstart,1,rownum,2 var data=dataRange.getValues 对于数据中的i{ ifsheet.getRange5,1.getValue>10{// var行=数据[i]; Logger.logYes大于10; //var emailadr=行[0];//数据选择 //var msgcontent=Hey+row[1]+,\n Just:chilling\n从我的电子邮件发送;//正文 //var sbjt=您有邮件!;//主题 //MailApp.sendmailadr、sbjt、msgcontent; } }
}这可能是可安装触发器的问题。onEdit是作为触发器安装的吗?未完成时,authMode=LIMITED。因此电子邮件无法使用。首先,您是否尝试在不依赖触发器的情况下自行运行该功能?它有用吗?其次,您的代码设计为每次编辑工作表上的任何位置时向列表中的每个人发送邮件。这就是你想要的行为吗?