英文:
Trigger Email based on any text in Specific Column
问题
尝试在列C中放入任何内容时触发发送电子邮件。使用当前的脚本,只有在我在任何行的列C中放入"TEST"时才能正常工作。我需要它在任何行的列C中放入任何内容时触发。是否有一种通配符可以表示任何输入?
function sendMailEdit(e) {
if ((e.range.columnStart != 3 || e.value != "TEST")) return;
const rData = e.source.getActiveSheet().getRange(e.range.rowStart, 1, 1, 4).getValues();
let job = rData[0][1];
let req = rData[0][0];
let item = rData[0][2];
let now = new Date().toLocaleString("en-US");
var emailRange = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Requestors").getRange("B2:B");
var emailAddress = emailRange.getValues();
let msg = "Job # = " + job + " \nRequestor = " + req + " \nItem Requested = " + item + " \nDate & Time Requested " + now;
Logger.log(msg);
GmailApp.sendEmail(emailAddress, "Raw Material Request", msg);
}
英文:
Trying to trigger to send email when anything is put into column C. With currect script it will work just fine if I put TEST in any row column C works great. I need it to trigger if anything is put into anyrow column C. Is there a wildcard so to speak for anything entered?
function sendMailEdit(e){
if ((e.range.columnStart != 3 || e.value != "TEST")) return;
const rData = e.source.getActiveSheet().getRange(e.range.rowStart,1,1,4).getValues();
let job = rData[0][1];
let req = rData[0][0];
let item = rData[0][2];
let now = new Date().toLocaleString("en-US");
var emailRange = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Requestors").getRange("B2:B");
var emailAddress = emailRange.getValues();
let msg = "Job # = " + job + " \nRequestor = " + req + " \nItem Requested = " + item + " \nDate & Time Requested " + now;
Logger.log(msg);
GmailApp.sendEmail(emailAddress, "Raw Material Request", msg)
}
答案1
得分: 0
关于您对“我需要它在将任何内容放入任何行的C列时触发”的期望结果,在这种情况下,可以考虑使用isBlank()
。 当这反映在您的脚本中时,请按以下方式进行修改。
从:
if ((e.range.columnStart != 3 || e.value != "TEST")) return;
到:
if (e.range.columnStart != 3 || e.range.isBlank()) return;
通过这样做,当将值放入“C”列时,将运行if语句下面的脚本。
参考链接:
英文:
About your expected result of I need it to trigger if anything is put into anyrow column C.
, in this case, how about using isBlank()
? When this is reflected in your script, please modify it as follows.
From:
if ((e.range.columnStart != 3 || e.value != "TEST")) return;
To:
if (e.range.columnStart != 3 || e.range.isBlank()) return;
- By this, when a value is put into column "C", the script below this if statement is run.
Reference:
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论