Google apps script 谷歌应用程序脚本-如何一个接一个地执行功能?
1)我的目标Google apps script 谷歌应用程序脚本-如何一个接一个地执行功能?,google-apps-script,sequential,Google Apps Script,Sequential,1)我的目标 我正在尝试编写一个Google应用程序脚本,它一步一步地运行3个函数,每一步后都会有一个小停顿 基本上:1)用特定内容填充单元格2)将单元格中的内容发送到电子邮件地址3)删除单元格中的内容 2)我的挑战 function pastecontent() { // Fetch spreadsheet var sheet = SpreadsheetApp.getActiveSpreadsheet(); // copy paste from first row t
- 我正在尝试编写一个Google应用程序脚本,它一步一步地运行3个函数,每一步后都会有一个小停顿
- 基本上:1)用特定内容填充单元格2)将单元格中的内容发送到电子邮件地址3)删除单元格中的内容
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();
}
- 谷歌应用程序脚本正在同时运行所有功能
- SpreadsheetApp.flush();正如建议的那样——但没有成功
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();
}
谢谢你的支持
Joe调用所有函数的主函数:
function main() {
pastecontent();
sendEmails();
clearcontent();
}
示例日志:
除了电子邮件,我没有对你的代码做任何更改,一切都很顺利
只要确保有一个主函数逐个调用它们就行了
除此之外,我认为你的代码没有任何问题
挑剔:发送电子邮件之前未定义
单元格
变量。声明没有包含在提供的代码中,所以我在我的代码中声明了它。如果您的代码中没有它,您可能需要添加它。我认为您可以这样组织代码
function mainFunction(){
pastecontent();
Utilities.sleep(200);// pause in the loop for 200 milliseconds
sendEmails();
Utilities.sleep(200);/
clearcontent();
}
您似乎没有运行所有其他3个函数的“主”函数。你确定你把它们都放在一起了吗?另外,不起作用
描述不够。提供更多细节