2017-03-10 130 views
0

我一直在尝试使用以下功能:谷歌电子邮件的脚本

// This constant is written in column C for rows for which an email 
// has been sent successfully. 
var EMAIL_SENT = "EMAIL_SENT"; 

function sendEmails2() { 
  var sheet = SpreadsheetApp.getActiveSheet(); 
  var startRow = 2;  // First row of data to process 
  var numRows = 2;   // Number of rows to process 
  // Fetch the range of cells A2:B3 
  var dataRange = sheet.getRange(startRow, 1, numRows, 3) 
  // Fetch values for each row in the Range. 
  var data = dataRange.getValues(); 
  for (var i = 0; i < data.length; ++i) { 
    var row = data[i]; 
    var emailAddress = row[0];  // First column 
    var message = row[1];       // Second column 
    var emailSent = row[2];     // Third column 
    if (emailSent != EMAIL_SENT) {  // Prevents sending duplicates 
      var subject = "Sending emails from a Spreadsheet"; 
      MailApp.sendEmail(emailAddress, subject, message); 
      sheet.getRange(startRow + i, 3).setValue(EMAIL_SENT); 
      // Make sure the cell is updated right away in case the script is interrupted 
      SpreadsheetApp.flush(); 
    } 
  } 
} 

鉴于谷歌的教程在以下链接:https://developers.google.com/apps-script/articles/sending_emails 我想换行6使其功能只对指定的片材,而不是基于哪一个是活动的。有人建议我在另一个论坛上将该行更改为:

var sheet = SpreadsheetApp.getSheetByName("sheetname"); 

但是脚本编辑器找不到这样的命令。有任何想法吗?

回答

1

在访问单张纸之前,您必须打开电子表格。如果你的脚本文件的束缚,尝试:

var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName(name); 

如果您使用的是独立的脚本或需要参考其他电子表格,请尝试:

var sheet = SpreadsheetApp.openById(id).getSheetByName(name) 

希望这有助于。

相关问题