我对编码很陌生,所以如果这很简单,我会忽略或遗漏,我很抱歉。
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%,这将是非常有用的。
答案 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。