Google Apps Script - 如何一个接一个地执行函数?

Google Apps Script - How to execute functions one after another?

1) 我的目标

2) 我的挑战

3) 我尝试了什么?

4) 我的代码

function pastecontent() {

  // Fetch spreadsheet 
  var sheet = SpreadsheetApp.getActiveSpreadsheet();
  
  // copy paste from first row to all others
  var source = sheet.getRange("D6:F6");
  source.copyTo (sheet.getRange("D7:F22"));  
   
}

function sendEmails() {

   // pause for X seconds  
  Utilities.sleep(3000);
 
  // Fetch spreadsheet 
  var sheet = SpreadsheetApp.getActiveSpreadsheet();
       
  // get the range and values in one step
  var values = sheet.getRange("D7:F22").getValues();
  
  // Send Mail
  var message = values + " https://docs.google.com/spreadsheets/d/[....]"; 
  var emailAddress = "XYZ@gmail.com"; 
  var subject = "Test Mail";
  if (cell != "") {
  MailApp.sendEmail(emailAddress, subject, message);
  }
}

function clearcontent() {

  // pause for X seconds  
  Utilities.sleep(8000);

  // Fetch spreadsheet 
  var sheet = SpreadsheetApp.getActiveSpreadsheet();
  
  // clear cells
  sheet.getRange("D7:F22").clearContent();
   
}

感谢您的支持 乔

调用所有函数的主函数:

function main() {
  pastecontent();
  sendEmails();
  clearcontent();
}

示例日志:

除了电子邮件之外,我没有更改您的代码中的任何内容,一切顺利。

只要确保有一个 main 函数可以一个一个地调用它们。

除此之外,我没有发现您的代码有任何问题

吹毛求疵:cell 变量在发送电子邮件之前未定义。提供的代码中没有包含声明,所以我在我的代码中声明了它。如果你没有它,你可能想添加它。

我想你可以这样组织你的代码

function mainFunction(){
  pastecontent();
  Utilities.sleep(200);// pause in the loop for 200 milliseconds
  sendEmails();
  Utilities.sleep(200);/
  clearcontent();
}