首次提問者,長期 StackOverflow 跟蹤者。情況就是這樣,我有下面的腳本,只要我在第 18 和 20 列中輸入正確的值,就會向我發送一封電子郵件,這些值可以進入目標電子表格中的任何行,只要它們在正確的列中,將發送一封電子郵件。問題是,只有在我將兩個正確的值都輸入到兩個必需的單元格中之后,我才需要發送一封電子郵件。現在,如果滿足任何一個條件,它就會發送一封電子郵件,我需要弄清楚如何讓腳本在發送電子郵件之前要求滿足這兩個條件。
有任何想法嗎?
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("[email protected]", "HR Has Processed an Employee", msg)
}
uj5u.com熱心網友回復:
在您的情況下,如何進行以下修改?
從:
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”列的值分別為
Created和Inputted時,運行 if 陳述句下面的腳本。
添加:
關于您的以下新問題,
如果我想從第 8 行添加第三個條件,這對你來說是否合適 @Tanaike ' const range = e.range; if (![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 != "創建" || t != "輸入") 回傳;'
我想在滿足 3 個條件后更改腳本以發送電子郵件。我想包括您幫助我解決的前 2 個條件,但現在添加第 3 個條件。我想要的第三個條件是第 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;
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/438813.html
