Google apps script 谷歌脚本编辑功能

Google apps script 谷歌脚本编辑功能,google-apps-script,Google Apps Script,我下面的代码可以很好地工作,当我分别破坏它来复制记录,然后发送邮件 我需要在onedit复制记录后运行“发送邮件”功能。代码只复制记录,不发送邮件。邮件代码在手动执行时工作 function onEdit(event){ var ss = SpreadsheetApp.getActiveSpreadsheet();var s = event.source.getActiveSheet(); var r = event.source.getActiveRange(); if(s.getName(

我下面的代码可以很好地工作,当我分别破坏它来复制记录,然后发送邮件

我需要在onedit复制记录后运行“发送邮件”功能。代码只复制记录,不发送邮件。邮件代码在手动执行时工作

function onEdit(event){ var ss = SpreadsheetApp.getActiveSpreadsheet();var s = event.source.getActiveSheet(); var r = event.source.getActiveRange();

if(s.getName() == "UK STOCK ALERTS" && r.getColumn() == 5 && r.getValue() == "Back Orders Accepted") {
var row = r.getRow();
var numColumns = s.getLastColumn();
var targetSheet = ss.getSheetByName("AlertMailOut");  
var target = targetSheet.getRange(1,16)    
s.getRange(row, 1, 1, numColumns).copyTo(target);        

var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("AlertMailOut");  var startRow = 2;  var numRows = 40;  var dataRange = sheet.getRange(startRow, 1, numRows, 100); var data = dataRange.getValues(); for (var i = 0; i < data.length; ++i) {var row = data[i]; var emailAddress = row[0];var message = row[1]; // Second column
var emailSent = row[4]; // Third column
if (emailSent !== EMAIL_SENT) { // Prevents sending duplicates
  var subject = 'Brick Fanatics Stock Update';
  MailApp.sendEmail(emailAddress, subject, message);
   SpreadsheetApp.flush();
} } } } 
函数onEdit(event){var ss=SpreadsheetApp.getActiveSpreadsheet();var s=event.source.getActiveSheet();var r=event.source.getActiveRange();
如果(s.getName()==“英国股票警报”&&r.getColumn()==5&&r.getValue()==“接受延期订单”){
var row=r.getRow();
var numColumns=s.getLastColumn();
var targetSheet=ss.getSheetByName(“AlertMailOut”);
var target=targetSheet.getRange(1,16)
s、 getRange(行,1,1,numColumns).copyTo(目标);
var sheet=SpreadsheetApp.getActiveSpreadsheet().getSheetByName(“AlertMailOut”);var startRow=2;var numRows=40;var dataRange=sheet.getRange(startRow,1,numRows,100);var data=dataRange.getValues();for(var i=0;i
您需要将此函数作为,而不是作为执行

要做的事:

  • 将函数重命名为其他函数
  • 通过选择添加触发器,从
    Triggers
    选项卡手动安装OneEdit触发器

如果您使用
onEdit
作为简单触发器,请使用onEdit的可安装触发器。因为我认为您出现问题的原因是因为
MailApp.sendmail
与简单触发器一起使用。顺便说一下,当您使用可安装的OnEdit触发器时,我建议您将函数名从
OnEdit
重命名为其他函数名。因为函数名
onEdit
用于简单触发器。因此,当将可安装的OnEdit触发器安装到
OnEdit
函数时,此函数将使用异步处理运行2次。所以请小心这个。