Javascript Appscript OneEdit获取行号并发送电子邮件
我正试图想出一个脚本,onEdit将获得选中复选框的行号,复制该行号并在单元格M1的另一个工作表上设置值,然后自动发送电子邮件,但编辑时不会触发,在我的代码下面:Javascript Appscript OneEdit获取行号并发送电子邮件,javascript,google-apps-script,google-sheets,Javascript,Google Apps Script,Google Sheets,我正试图想出一个脚本,onEdit将获得选中复选框的行号,复制该行号并在单元格M1的另一个工作表上设置值,然后自动发送电子邮件,但编辑时不会触发,在我的代码下面: function onEdit(e) { if(e.range.getSheet().getName() != 'Example') { return; } if(e.range.columnStart==22 && e.value=="TRUE") { Spreadshee
function onEdit(e) {
if(e.range.getSheet().getName() != 'Example') { return; }
if(e.range.columnStart==22 && e.value=="TRUE") {
SpreadsheetApp.getActiveSpreadsheet().getActiveRange().getRow().getSheetByName("Email").range("M1").setValue(row);
SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Email").activate();
var details = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Email").getRange("M1").getValues();
var recipient = "youremail@example.com";
var subject = "Example for the Number" && details;
var body = "This is an example test";
MailApp.sendEmail(recipient, subject, body);
}
}
我相信你的现状和目标如下
- 复选框放在“示例”表的“V”列中
- 选中复选框后,您希望检索选中复选框的行号,并将行号放入“电子邮件”工作表上的单元格“M1”
- 并且,您希望发送一封包含行号的电子邮件
- 在脚本中,位于
,SpreadsheetApp.getActiveSpreadsheet().getActiveRange().getRow().getSheetByName(“电子邮件”).range(“M1”).setValue(行)
返回行号。因此,我认为在getRow()
处会发生错误。我想这可能是你问题的原因getSheetByName(“Email”)
- 不幸的是,根据你的问题,我不确定你的动机是什么。但是,在脚本中,使用了
。在这种情况下,MailApp.sendmail
不能与简单触发器一起使用。由此,我认为也会发生错误。MailApp.sendmail
- 因此,在这种情况下,请使用可安装的OnEdit触发器
- 另外,当使用可安装触发器时,请从别人的
中重命名函数名。因为当onEdit
作为可安装触发器安装时,简单触发器和可安装触发器都会执行2次。请小心这个onEdit
- 顺便说一下,关于复选框,您可以使用
方法isChecked()
- 复选框放在“示例”表的“V”列中
- 选中复选框后,您希望检索选中复选框的行号,并将行号放入“电子邮件”工作表上的单元格“M1”
- 并且,您希望发送一封包含行号的电子邮件
- 在脚本中,位于
,SpreadsheetApp.getActiveSpreadsheet().getActiveRange().getRow().getSheetByName(“电子邮件”).range(“M1”).setValue(行)
返回行号。因此,我认为在getRow()
处会发生错误。我想这可能是你问题的原因getSheetByName(“Email”)
- 不幸的是,根据你的问题,我不确定你的动机是什么。但是,在脚本中,使用了
。在这种情况下,MailApp.sendmail
不能与简单触发器一起使用。由此,我认为也会发生错误。MailApp.sendmail
- 因此,在这种情况下,请使用可安装的OnEdit触发器
- 另外,当使用可安装触发器时,请从别人的
中重命名函数名。因为当onEdit
作为可安装触发器安装时,简单触发器和可安装触发器都会执行2次。请小心这个onEdit
- 顺便说一下,关于复选框,您可以使用
方法isChecked()
function installedOnEdit(e) {
var range = e.range;
if (range.getSheet().getName() != 'Example') { return; }
if (range.columnStart == 22 && range.isChecked()) {
var ss = e.source;
var row = range.getRow();
ss.getSheetByName("Email").getRange("M1").setValue(row);
var details = row;
var recipient = "youremail@example.com";
var subject = "Example for the Number" && details;
var body = "This is an example test";
MailApp.sendEmail(recipient, subject, body);
}
}