gpt4 book ai didi

datetime - 类 ClockTriggerBuilder : Specific Date and Time (only once) Trigger in Google Sheet Script keeps repeatedly executing every minute

转载 作者:行者123 更新时间:2023-12-04 08:54:27 29 4
gpt4 key购买 nike

以下脚本和触发器在第一个实例中按预期运行。但它并没有停止!此后触发器每分钟继续执行一次!
我只需要它按照程序运行一次,就是这样!
如何在第一次预期执行后停止执行触发器?
任何帮助将不胜感激!
PS:这是我第一次尝试编写Google Sheet Script,所以请回答简单易懂!

function sendWAnow(){
var ss = SpreadsheetApp.getActiveSpreadsheet()
var sheet1=ss.getSheetByName('Reports');
var Date = sheet1.getRange(3,3).getValue();
var subject = sheet1.getRange(4,3).getValue();
var emailAddress = sheet1.getRange(5,3).getValue();
var message = sheet1.getRange(6,3).getValue();
ScriptApp.newTrigger('sendWAnow')
.timeBased()
.at(Date)
.create();
MailApp.sendEmail(emailAddress, subject, message);
}

最佳答案

解释:
您的代码作为触发器的无限循环运行。第一次执行 sendWAnow()它将创建一个触发器,该触发器将执行 sendWAnow()然后将再次创建一个新的触发器。

解决方案:
您应该拆分这两个函数,一个函数应该为另一个函数创建触发器。
执行 只有 createTrigger() :

function createTrigger(){
var ss = SpreadsheetApp.getActiveSpreadsheet()
var sheet1=ss.getSheetByName('Reports');
var Date = sheet1.getRange(3,3).getValue();
ScriptApp.newTrigger('sendWAnow')
.timeBased()
.at(Date)
.create();
}
这将触发 sendWAnow()在特定的时间。
function sendWAnow(){
var ss = SpreadsheetApp.getActiveSpreadsheet()
var sheet1=ss.getSheetByName('Reports');
var Date = sheet1.getRange(3,3).getValue();
var subject = sheet1.getRange(4,3).getValue();
var emailAddress = sheet1.getRange(5,3).getValue();
var message = sheet1.getRange(6,3).getValue();

MailApp.sendEmail(emailAddress, subject, message);
}

关于datetime - 类 ClockTriggerBuilder : Specific Date and Time (only once) Trigger in Google Sheet Script keeps repeatedly executing every minute,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63918112/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com