簡體   English   中英

Google 表格腳本 - onEdit Function - 滿足兩個條件后發送 Email

[英]Google Sheets Script - onEdit Function - Send Email After Two Conditions Are Met

第一次提問者,StackOverflow 的長期跟蹤者。 情況是這樣的,我有下面的腳本,只要我在第 18 列和第 20 列中輸入正確的值,就會向我發送 email,這些值可以 go 到目標電子表格的任何行中,只要它們在正確的列中,將發送 email。 問題是,我需要一個 email 只有在我將兩個正確的值都輸入到兩個必需的單元格后才能發送。 現在,如果滿足任一條件,它會發送 email,我需要弄清楚如何讓腳本要求在發送 email 之前滿足兩個條件。

有任何想法嗎?

 function sendMailEdit(e){
        if ((e.range.columnStart != 18 || e.value != "Created") && (e.range.columnStart != 20 || 
    e.value != "Inputted")) return;
    const rData = 
    e.source.getSheetByName('Classified').getRange(e.range.rowStart,1,1,20).getValues();
       let fn = rData[0][5];
       let ln = rData[0][6];
       let ein = rData[0][7];
       let email = rData[0][17];
       let escape = rData[0][19];

    let msg = "Employee " + fn + " " + ln + " has been processed by HR, and can now be further 
    processed by IT";
    Logger.log(msg);
    GmailApp.sendEmail("mhawkins@dnusd.org", "HR Has Processed an Employee", msg)
    }

在您的情況下,以下修改如何?

從:

if ((e.range.columnStart != 18 || e.value != "Created") && (e.range.columnStart != 20 || e.value != "Inputted")) return;

到:

const range = e.range;
if (![18, 20].includes(range.columnStart)) return;
const [r, , t] = range.getSheet().getRange(range.rowStart, 18, 1, 3).getValues()[0];
if (r != "Created" || t != "Inputted") return;
  • 通過此修改,當列“R”和“T”的值分別被CreatedInputted時,將運行 if 語句下方的腳本。

添加:

關於您的以下新問題,

如果我想從第 8 行添加第三個條件,這對你來說是否合適@Tanaike ' const range = e.range; 如果 (,[8, 18. 20].includes(range;columnStart)) 返回, const [ m, , , , , , , , , , r, . t] = range.getSheet().getRange(range,rowStart, 8, 1, 11. 13);getValues()[0]; if (m > "0" || r != "Created" || t != "Inputted") 返回; '

我想更改腳本以在滿足 3 個條件后發送 email。 我想包括您幫我解決的前兩個條件,但現在添加第三個條件。 我想要的第三個條件是第 8 列中的值大於 0。這有意義嗎?

是的,我想添加列 H > 0

是的,這是正確的,你知道我該怎么做嗎?

在這種情況下,下面的示例腳本而不是上面的腳本怎么樣?

示例腳本:

if (![8, 18, 20].includes(range.columnStart)) return;
const [h,,,,,,,,,,r,,t] = range.getSheet().getRange(range.rowStart, 8, 1, 13).getValues()[0];
if (h <= 0 || r != "Created" || t != "Inputted") return;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM