格式化结果并检查结果是否上升或下降15%

时间:2018-05-30 23:46:54

标签: google-apps-script google-sheets

我对编码很陌生,所以如果这很简单,我会忽略或遗漏,我很抱歉。

function emailTest() {  
var sheet=SpreadsheetApp.getActiveSheet();
var currentROI=sheet.getRange("D2").getValue();
var previousROI=sheet.getRange("D3").getValue();

if((currentROI/previousROI)-1<=.10) {
 pctChange=currentROI/previousROI-1;
 MailApp.sendEmail({
 to:"test@test.com",
 subject:"Test email for auto-trigger",
 htmlBody:"sampleROI increased by " + pctChange + "from " + previousROI +" to " + currentROI +"."
 });
}

}

我的代码在上面。基本上我想要做的是找出单元格值下降是否低于10%,然后发送电子邮件到给定的帐户。

我最终希望这样做“如果当前的单元格比前一天上调或下降了15%,然后向x人发送电子邮件”。

看起来代码保存得很好但是一旦我尝试添加时间触发器,它就会给我发生“发生服务器错误”错误消息,经过大量阅读后,它似乎是代码问题。

编辑:

它实际上正在运行(忘记添加权限),但是如果我可以获得一些格式化结果的帮助,并检查它是否上升或下降15%,这将是非常有用的。

1 个答案:

答案 0 :(得分:1)

此代码应该有效(您的代码中存在大量语法问题)

function emailTest() {  
  var sheet = SpreadsheetApp.getActiveSheet();
  var currentROI = sheet.getRange("D2").getValue();
  var previousROI = sheet.getRange("D3").getValue();

  if (((currentROI/previousROI)-1 >= .15) || ((currentROI/previousROI)-1 <= -.15)) {
    pctChange = currentROI/previousROI-1;
    sheet.getRange("D4").setValue([pctChange])
    var to = "test@test.com"
    var subject = "Test email for auto-trigger"
    var body = "sampleROI increased by " + pctChange + "from " + previousROI +" to " + currentROI +"."
    GmailApp.createDraft(to, subject, body);
    //After debugging change ^^ to GmailApp.sendEmail(to, subject, body);
  }
}

我总是首先创建草稿,当我100%确定我的代码有效时,我切换到GmailApp.sendEmail。 如果您想使用HTML,请询问具体内容;它很容易合并简单的HTML。