我在 Google 电子表格上有一个电子表格,其中包含“D2”到“D”的所有内容(因为它会随着使用和添加更多内容而扩展),并带有一个用于优先状态的下拉框。下拉菜单有“低、中、高”。当优先级被编辑为“高”时,我想要一个脚本给我发送电子邮件
这是我昨晚凌晨 2 点半睡着的剧本。
{
var ss = SpreadsheetApp.getActive();
var sheet = ss.getSheetByName("TC52 Bugs or Issues and Improvements.");
var valueToCheck = sheet.getRange(D).getValue();
var rangeEdit = e.range.getA1Notation();
if(rangeEdit == "D")
{
if(valueToCheck > High)
{
MailApp.sendEmail("austin.hendrix@decathlon.com", "High Priority please check now.", "Check spreadsheet" + valueToCheck+ ".");
}
}
}````
答案 0 :(得分:0)
This 文章有教程。
在那一点上,一些东西(由 MetaMan 进行了大量编辑)
function sendEmails() {
var sheet = SpreadsheetApp.getActiveSheet();
var dataRange = sheet.getRange(1,4,sh.getLastRow()) or getRange('D1:D'+sh.getLastRow()));
var data = dataRange.getValues();
for (var i in data) {
var row = data[i];
var emailAddress = "youremail@email.com"; // First column
var message = "High priority set with data in A column "+sheet.getRange(("A"+i+1)).getValues()[0]; // Second column
var subject = 'High priority set in D'+i;
if(row[0]=="High"){
MailApp.sendEmail(emailAddress, subject, message);
}
}
}
答案 1 :(得分:0)
当 D 列被编辑为“高”时,该功能会向您发送一封电子邮件。
您需要填写“您的电子表格名称”、收件人电子邮件地址以及您希望的主题。您也可以编辑正文。当前正文只是告诉您哪一行发出电子邮件。或者,如果您想提供更多信息,我会为您提供。
function onMyEdit(e) {
const sh = e.range.getSheet();
if(sh.getName() == 'Your Sheet Name' && e.range.columnStart == 4 && e.range.rowStart >1 && e.value == 'High') {
GmailApp.sendEmail('recipient','subject',`row ${e.range.rowStart} has been set to high`)
}
}
<块引用>
由于发送电子邮件需要权限,因此您必须为此功能创建可安装的触发器。
您可以手动执行此操作,也可以使用如下所示的函数来阻止您创建多个触发器。
function createTrigger() {
const ts = ScriptApp.getProjectTriggers().map(t=>t.getHandlerFunction());
if(!~ts.indexOf('onMyEdit')) {
ScriptApp.newTrigger('onMyEdit').forSpreadsheet(SpreadsheetApp.getActive().getId()).onEdit().create();
}
}
<块引用>
请注意:您不能从脚本编辑器甚至菜单中运行 onEdit 触发的函数。它们需要使用事件对象填充单个参数 e 的 onEdit 触发器。只要提供事件对象,您就可以从另一个函数运行它们。