在google工作表的google脚本中的特定工作表上使用onedit()触发器

ada*_*ech 7 triggers if-statement function google-sheets google-apps-script

我需要运行一个由onedit()触发的脚本,只运行一个页面.

我已经尝试了以下内容,但目前我无法让脚本只处理所需的工作表("库存")我确信这对于知道的人来说非常简单:

function onEdit(e) {
    var range = e.range;
    if(range.getSheetName() == "Inventory") {
        if(range.getValue() == "notify") {
            range.setBackgroundColor('red');
            var productname = range.offset(0,-3).getValue();
            var productinventory = range.offset(0,-2).getValue();
            var message = "Product variant " + productname + " has dropped to " + productinventory;
            var subject = "Low Stock Notification";
            var emailAddress = "email@email.com";
            MailApp.sendEmail(emailAddress, subject, message);
            range.offset(0,1).setValue("notified");
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

谢谢!

JPV*_*JPV 13

尝试这样的事情,看看它是否有效:

function onEdit(e) {
    var activeSheet = e.source.getActiveSheet();
    var range = e.range;
    if (activeSheet.getName() !== "Inventory" || e.value !== "notify") return;
    range.setBackgroundColor('red');
    var productname = range.offset(0, -3).getValue();
    var productinventory = range.offset(0, -2).getValue();
    var message = "Product variant " + productname + " has dropped to " + productinventory;
    var subject = "Low Stock Notification";
    var emailAddress = "email@email.com";
    MailApp.sendEmail(emailAddress, subject, message);
    range.offset(0, 1).setValue("notified");
}
Run Code Online (Sandbox Code Playgroud)

现在,如果活动工作表不是"库存"或编辑后的值不是"通知",则脚本将退出.

  • 虽然这是一个onEdit脚本,但由于发送电子邮件,您必须使用可安装的触发器(在编辑电子表格时添加触发器). (3认同)

小智 7

我建议你试试这个:

range.getSheet().getSheetName() == "Inventory"
Run Code Online (Sandbox Code Playgroud)