0

我有一个脚本,我试图在谷歌文档中的所有工作表上运行,但不知道如何使它工作。它适用于一张纸,但我有许多表格都需要检查相同的格式。谢谢。

这是我试图应用于所有工作表的脚本。

function sendEmail(email_address, email_subject, email_message) {
  MailApp.sendEmail(email_address, email_subject, email_message);
}


function timestamp() {
return new Date()
}

var EMAIL_SENT = "EMAIL_SENT";


function test_sendEmail() {
  var sheet = SpreadsheetApp.getActiveSheet();
  var cell = sheet.setActiveCell('A2');
  var criterion_cutoff = 5;
  var i = 0;
  var startRow = 2;
  var addr;
  var subj;
  var msg;
  var timecheck
  do {
    addr = cell.offset(i,0).getValue();
    subj = cell.offset(i,1).getValue();
    msg = cell.offset(i,2).getValue();
    criterion = cell.offset(i,3).getValue();
    timecheck = cell.offset(i,11).getValue();
    if (timecheck > 0) {
      if(criterion < criterion_cutoff) {
        sendEmail(addr,subj,msg);
        Browser.msgBox('Sending email to: ' + addr);
      }}
    i++;
  } while( cell.offset(i, 0).getValue().length > 0 )
  sheet.getRange(2, 5).setValue(timestamp());  
  Browser.msgBox('Done!');
}
4

1 回答 1

0

您可以通过进行以下更改来使用要应用脚本的 ID 数组:
1. 更改

function test_sendEmail() {
  var sheet = SpreadsheetApp.getActiveSheet();

到:

function test_sendEmail(sheetID) {
  var sheet = SpreadsheetApp.openById(sheetID);

2. 定义要更改的工作表 ID 数组:

var idArray = [Spreadsheet1_id, Spreadsheet2_id, ...];

3. 创建一个循环遍历数组的所有元素

for(var k in idArray) test_sendEmail(idArray[i]);

如果您不想手动填充 idArray,您可以创建一个函数来提取 Google Drive 中所有电子表格的 ID。如果这是您想要的,请使用以下代码,而不是我在第 2 点提供给您的代码行。

var sprArr =  DocsList.getFilesByType("spreadsheet");
var idArray;
for(var k in sprArr) idArray.push(sprArr[i].getId());
于 2012-07-22T12:45:27.717 回答