![](/img/trans.png)
[英]How can I have Google Sheets email a row when an email address in entered into that row?
[英]While using Google Sheets, what code should I use to send an email when a row has been added and then when that row is edited?
我对编码非常陌生,但是当我们的编程 Google 工作表更新时,我试图自动向 email 某些工作人员添加代码。 email 的实例是: - 添加了新行,表示已将新节目添加到我们的节目中 - 已编辑行,表示已在特定列中添加了新信息用于营销,节目可以 go 发售等.
我已经尝试对一些代码进行 frankensteining 或更改一些样本。 要么代码不起作用(找不到源是一个常见问题),要么它发送 email 每次当我只关心某些列时,工作表上的任何地方都有编辑。
我最接近的是这段代码,但它会为每次编辑发送一个 email。 我只需要添加一行和编辑特定列时。
function SendEmail() {
var ActiveSheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
var StartRow = 4;
var RowRange = ActiveSheet.getLastRow() - StartRow + 1;
var WholeRange = ActiveSheet.getRange(StartRow,1,RowRange,5);
var AllValues = WholeRange.getValues();
var message = "";
for (i in AllValues) {
var CurrentRow = AllValues[i];
var EmailSent = CurrentRow[5];
var Sender = CurrentRow[1];
message =
"A Show has been added."
var setRow = parseInt(i) + StartRow;
}
var SendTo = "myemail.com";
var Subject = "Show Added on MySheet";
MailApp.sendEmail({
to: SendTo,
subject: Subject,
htmlBody: message,
});
}
任何帮助深表感谢。 谢谢你。
onEdit(e) {
const sh=e.range.getSheet();
if(sh.getName()=='Your sheet name' && e.range.rowStart>3 &&
e.rangeColumnnStart<7) {
SendEmail();
}
}
function SendEmail() {
const ss = SpreadsheetApp.getActive();
const sh = ss.getActiveSheet();
const sr = 4;
const RowRange = sh.getLastRow() - sr + 1;
const WholeRange = sh.getRange(sh, 1, RowRange, 6);
const AllValues = WholeRange.getValues();
const message = "A Show has been added.";
const SendTo = "myemail.com";
const Subject = "Show Added on MySheet";
for (let i=0;i<AllValues.length;i++) {
let CurrentRow = AllValues[i];
let EmailSent = CurrentRow[5];
let Sender = CurrentRow[1];
let setRow = parseInt(i) + sr;
if(CurrentRow[5]!='Sent') {
MailApp.sendEmail({to: SendTo,subject: Subject,htmlBody: message});
sh.getRange(i+sr,6).setValue('Sent');
}
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.