我想知道我的Google Apps脚本出了什么问题。当第2列中的任何单元格中不再包含“ - ”而下一个单元格为“否”时,我尝试发送电子邮件。显然,sendEmail函数由于某种原因不起作用。
我在下面的小电子表格中做了一些例子。我希望在第三行匹配时发送电子邮件。
1 2 3
1 00 - Yes
2 00 - No
3 00 x No
这是我的代码:
function onEdit() {
var s = SpreadsheetApp.getActiveSheet();
if( s.getName() == "Sheet4" ) { //checks that we're on the correct sheet
var r = s.getActiveCell();
var nextCell = r.offset(0, 1);
if(( r.getColumn() == 2 ) && ( r.getValue() !== '-' ) && ( nextCell.getValue() === 'No' )){ //checks the cell
MailApp.sendEmail('example@gmail.com', 'test email from Google Spreadsheet', 'Let me know if this came through ok');
}
}
}
答案 0 :(得分:1)
首先,检查不平等的条件是!=
。所以尝试下面的修改代码。
其次,您将发送电子邮件至example@gmail.com。我假设实际代码将电子邮件发送到真实地址。
function onEdit() {
var s = SpreadsheetApp.getActiveSheet();
if( s.getName() == "Sheet4" ) { //checks that we're on the correct sheet
var r = s.getActiveCell();
var nextCell = r.offset(0, 1);
if(( r.getColumn() == 2 ) && ( r.getValue() != '-' ) && ( nextCell.getValue() == 'No' )){ //checks the cell
MailApp.sendEmail('example@gmail.com', 'test email from Google Spreadsheet', 'Let me know if this came through ok');
}
}
}
答案 1 :(得分:1)
onEdit()
函数是简单触发函数的示例。如Understanding Triggers中所述,简单触发器无法访问需要身份验证的服务。这就是MailApp和GmailApp无法发送邮件的原因。