每次编辑后,光标自动移动到 google 电子表格中的单元格 A1,其中包含应用程序脚本

Cursor automatically moved to Cell A1 in google spreadsheet with app script after each edit

我在应用程序脚本中生成了以下代码,以便在用户更改 google 电子表格中的某些值时自动发送电子邮件。

然后我通过更改 "current project's trigger" 将我的脚本连接到 google 电子表格。例如:

my trigger.jpg

代码运行良好唯一的问题 是在用户 insert/edit 在 google 电子表格的任何单元格(例如:B1、B12、C12 等)中输入新值后,它将触发我的脚本,然后光标总是自动移动到单元格A1,这很烦人。

我最好的猜测(我可能是错的)是它作为 "signal" 返回到单元格 A1,因为它每次都完成 运行 应用程序脚本代码?

有什么办法可以阻止这个自动移动光标的东西吗?我需要更改 "current project's trigger" 吗?

function PODTool() {
  var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
  SpreadsheetApp.setActiveSheet(spreadsheet.getSheets()[0]);

  var sheet = spreadsheet.getActiveSheet();
  var lastRow = sheet.getLastRow();

  var startRow = 2;

  var range = sheet.getRange(2,7,lastRow-startRow+1,1 );
  var numRows = range.getNumRows();
  var LinksToPODForm = range.getValues();

  var rangeColumnReadyToSendEmail =sheet.getRange(2,9,lastRow-startRow+1,1);
  var sendEmailOrNot = rangeColumnReadyToSendEmail.getValues();


  var warning_count = 0;
  var msg = "";

  // Loop over the values 
  for (var i = 0; i <= numRows - 1; i++) {
    var EachLinkValue = LinksToPODForm[i][0];


    if (EachSendEmailOrNotValue=="yes" && sheet.getRange(i+2,10).getValue()=='Email not Sent' &&EachEmailRecipient=="Someone"){
    var BillingOfLadingShowingInEmailNotification = Billing_of_lading_number[i][0];


    msg = msg +"Requester:       "+EachEmailRecipient+"
    warning_count++;
    var subject ="Billing of Lading: "+BillingOfLadingShowingInEmailNotification;
      sheet.getRange(i+2,10).setValue('Sent');
    var recipient = "xxx@gmail.com";
  }

  if(warning_count) {
    MailApp.sendEmail(recipient, subject,msg)
  }

};

感谢任何建议!!

我会改变这个:

var sheet = spreadsheet.getActiveSheet();

至:

var sheet = spreadsheet.getSheets()[0]; 

并删除此行:

SpreadsheetApp.setActiveSheet(spreadsheet.getSheets()[0]);