每次编辑后,光标自动移动到 google 电子表格中的单元格 A1,其中包含应用程序脚本
Cursor automatically moved to Cell A1 in google spreadsheet with app script after each edit
我在应用程序脚本中生成了以下代码,以便在用户更改 google 电子表格中的某些值时自动发送电子邮件。
然后我通过更改 "current project's trigger" 将我的脚本连接到 google 电子表格。例如:
代码运行良好。 唯一的问题 是在用户 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]);
我在应用程序脚本中生成了以下代码,以便在用户更改 google 电子表格中的某些值时自动发送电子邮件。
然后我通过更改 "current project's trigger" 将我的脚本连接到 google 电子表格。例如:
代码运行良好。 唯一的问题 是在用户 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]);