0

我试图找出我的 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');    
       }
     }
    }
4

2 回答 2

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');    
       }
     }
    }
于 2013-06-22T09:59:47.533 回答
1

onEdit()函数是简单触发函数的一个示例。如了解触发器中所述,简单触发器无法访问需要身份验证的服务。这就是 MailApp 和 GmailApp 不能用于发送邮件的原因。

于 2013-06-23T16:00:54.993 回答