【问题标题】:Google Sheet Email script to email multiple cells of row that was edited in a different cell用于通过电子邮件发送在不同单元格中编辑的行的多个单元格的 Google 表格电子邮件脚本
【发布时间】:2020-04-05 10:42:28
【问题描述】:

当在同一行进行编辑时,我正在拼凑一些代码,以便通过电子邮件发送某些单元格。我遇到的问题是我在同一个电子表格上有多个工作表,目前当我编辑不同的工作表时它正在向我发送电子邮件。我知道我会做一些愚蠢的事情,但我无法解决。

我已附上脚本,任何帮助将不胜感激。

function onSheetEdit(e) {

  var source = SpreadsheetApp.getActiveSpreadsheet();//Specifies the current spreadsheet
  var source_sheet = source.getSheetByName('SHOP Sites In Progress');//Specifies the sheet to monitor for changes
  var range = source_sheet.getDataRange();//Gets the data range for the entire sheet
  var ActiveRow = source_sheet.getActiveRange().getRow();//Identifies the row that the change occurred in
  var columns = "21";//Specifies how many columns of data your sheet has
  var data = source_sheet.getRange(ActiveRow,1,1,21).getValues();//(StartRow,StartColumn,NumberofRowstoGet,NumberofColumnstoGet)
  var emailAddressToNotify = 'test@email.com'
  var columnA = data[0][0];
  var columnB = data[0][1];
  var columnC = data[0][2];
  var columnD = data[0][3];
  var columnE = data[0][4];
  var columnF = data[0][5];
  var columnG = data[0][6];
  var columnH = data[0][7];
  var columnI = data[0][8];
  var columnJ = data[0][9];
  var columnK = data[0][10];
  var columnL = data[0][11];
  var columnM = data[0][12];
  var columnN = data[0][13];
  var columnO = data[0][14];
  var columnP = data[0][15];
  var columnQ = data[0][16];
  var columnR = data[0][17];
  var columnS = data[0][18];
  var columnT = data[0][19];
  var columnU = data[0][20];


  

  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var emailSubject = 'Shop site in progress ' + 'Customer Name: ' + columnB + ' ' + columnC + ' ' + 'info updated'
  var sheet = SpreadsheetApp.getActiveSheet();
  // var emailBody = 'Person1 has approved the item on row ' + range.getRow() + ' of spreadsheet "' + ss.getName() + '".\n\n';
  var emailBody = Session.getActiveUser().getEmail() + ' Has approved the item on row ' +ActiveRow+  ' of spreadsheet "'  + sheet.getName() + '".\n\n';
  emailBody  += ''
  emailBody  += 'Customer PINCODE : ' + columnA + '\n' ;
  emailBody  += 'Customer Name: ' + columnB + ' ' + columnC +'\n';
  emailBody  += 'Business Name: ' + columnD +'\n\n';  
  emailBody += 'To open the spreadsheet, click this link: ' + ss.getUrl() + '\n\n';
 
  emailBody += '(this is an automatically sent message)';

    MailApp.sendEmail(emailAddressToNotify, emailSubject, emailBody);
  
}

【问题讨论】:

    标签: email google-apps-script google-sheets


    【解决方案1】:

    添加一个 if 条件来测试您是否在所需的工作表上

    function onSheetEdit(e) {
    
        var source = SpreadsheetApp.getActiveSpreadsheet(); //Specifies the current spreadsheet
    
        if (source.getActiveSheet().getSheetName() == 'SHOP Sites In Progress') {
    
            var source_sheet = source.getSheetByName('SHOP Sites In Progress'); //Specifies the sheet to monitor for changes
            var range = source_sheet.getDataRange(); //Gets the data range for the entire sheet
    

    【讨论】:

    • 您是传奇先生。非常感谢你的帮助。我之前尝试过 IF 命令,但显然我放错了位置。
    【解决方案2】:
    function onSheetEdit(e) {
      var sh=e.range.getSheet();
      if(sh.getName()=='SHOP Sites In Progress') {
        var data=sh.getRange(e.range.rowStart,1,1,21).getValues()[0];
        var emailAddressToNotify='test@email.com';
        var emailSubject=Utilities.formatString('Shop site in progress Customer Name: %s %s info update',data[1],data[2]);
        var emailBody = Session.getActiveUser().getEmail() + ' Has approved the item on row ' + e.range.rowStart +  ' of spreadsheet "'  + sh.getName() + '".\n\n';
        emailBody  += '';
        emailBody  += 'Customer PINCODE : ' + data[0] + '\n' ;
        emailBody  += 'Customer Name: ' + data[1] + ' ' + data[2] +'\n';
        emailBody  += 'Business Name: ' + data[3] +'\n\n';  
        emailBody += 'To open the spreadsheet, click this link: ' + e.source.getUrl() + '\n\n';
        emailBody += '(this is an automatically sent message)';
        MailApp.sendEmail(emailAddressToNotify, emailSubject, emailBody);
      }
    }
    

    【讨论】:

      猜你喜欢
      • 2023-03-31
      • 2018-10-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-12-15
      • 2020-04-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多