Google apps script 发送工作表中匹配单元格值的电子邮件

Google apps script 发送工作表中匹配单元格值的电子邮件,google-apps-script,google-sheets,Google Apps Script,Google Sheets,当第8列的值与google脚本中所有行的第3列匹配时,我试图发送电子邮件 function sendEmailNotification() { var ss = SpreadsheetApp.getActiveSpreadsheet(); var lrow=ss.getLastRow() var sheet = SpreadsheetApp.getActiveSheet(); for (var i = 2; i < lrow; i++) { if (sheet

当第8列的值与google脚本中所有行的第3列匹配时,我试图发送电子邮件

function sendEmailNotification() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var lrow=ss.getLastRow()
  var sheet = SpreadsheetApp.getActiveSheet();

  for (var i = 2; i < lrow; i++)
  {
    if (sheet.getRange(i, 8).getValue() = sheet.getRange(i, 3).getValue())

      var emailSubject =  'Value of ' + sheet.getRange(i, 1).getDisplayValue() + ' triggered, now pending your attention';
    var emailBody = 'Person1 has approved the item on row ' + ' of spreadsheet "' + '".\n\n';
    emailBody += 'To open the spreadsheet, click this link: ' + ss.getUrl() + '\n\n';
    emailBody += '(this is an automatically sent message)';

    MailApp.sendEmail("sdas22@gmail.com", emailSubject, emailBody);
;  }}
函数sendmailnotification(){ var ss=SpreadsheetApp.getActiveSpreadsheet(); var lrow=ss.getLastRow() var sheet=SpreadsheetApp.getActiveSheet(); 对于(变量i=2;i主要问题是IF语句

这是您的,它不工作,并且正在生成错误消息

if (sheet.getRange(i, 8).getValue() = sheet.getRange(i, 3).getValue())
这是我的,能用的

 if ((sheet.getRange(i, 8).getValue()) == (sheet.getRange(i, 3).getValue())){

    }
有几件事需要注意

  • 比较运算符为“==”而不是“=”
  • 每个getValue语句都封装在括号中
  • 没有“花括号”来表示IF语句的目的。这一点特别重要
最后一行还有分号,似乎不合适


这是我的代码版本-运行

function sendEmailNotification() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var lrow=ss.getLastRow()
  var sheet = SpreadsheetApp.getActiveSheet();

  for (var i = 2; i < lrow; i++)
  {

    if ((sheet.getRange(i, 8).getValue()) == (sheet.getRange(i, 3).getValue())){

        var emailSubject =  'Value of ' + sheet.getRange(i, 1).getDisplayValue() + ' triggered, now pending your attention';
        var emailBody = 'Person1 has approved the item on row ' + ' of spreadsheet "' + '".\n\n';
        emailBody += 'To open the spreadsheet, click this link: ' + ss.getUrl() + '\n\n';
        emailBody += '(this is an automatically sent message)';
        MailApp.sendEmail("sdas22@gmail.com", emailSubject, emailBody);
    }
  }
}
函数sendmailnotification(){ var ss=SpreadsheetApp.getActiveSpreadsheet(); var lrow=ss.getLastRow() var sheet=SpreadsheetApp.getActiveSheet(); 对于(变量i=2;iHi Subhati Das,您遇到的确切问题是什么?我在代码中应用了基于语法的缩进。。。有两个主要问题。查看JavaScript操作符(特别是赋值和比较),当使用“大括号”时,请查看StackOverflow。我刚刚发布了一些适用于您的场景的代码。@SUBHAJIT DAS oleh Dufour问得很对-您的问题是什么?但是假设你是新来的,从其他来源复制和粘贴,并试图理解这一切。。。然后我强烈建议您使用Logger.log();在代码中跟踪语句的值。当然,调试在整个事情发生时也非常方便。我得到一个错误:ReferenceError:Function-Function-getValue(){/**/}不能用作赋值的左侧或++或--运算符的操作数。(第9行,文件“代码”)详细信息DISMISS