如果 E 列是空白,我們想將公式 =IF(E2="","","No") 插入到附件的 F 列中。但是,由于某些原因,這有點棘手。F列已經有這個公式。我們有一個單獨的應用程式腳本,它基本上會覆寫它并在發送電子郵件時插入“是”。如果選擇“否”,則會發送電子郵件,因此“是”會阻止再次發送電子郵件。
嘗試將“是”重置為公式 =IF(E2="","","No") 的應用程式腳本如下。問題是,如果您在 F 列中有“是”,即使 E 列有值(不是代碼所說的“”),它也會以某種方式將“是”轉換為“否”。問題似乎是代碼用函式覆寫了所有列 F,而不是只有 E 列空白的單元格。我們不是這方面的專家,因此感謝您的耐心和指導!
function updateEformula(){
var ss = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Active Student List")
var values = ss.getRange("E2:E").getValues();
for(var i = 0; i<values.length; i ){
if (values[i] == ""){
var rangeEToModify = ss.getRange("E2:E");
rangeEToModify.setValue('=IFERROR(INDEX(StudentMatches!B:B,Match(A2,StudentMatches!D:D,0)),"")');
var rangeFToModify = ss.getRange("F2:F");
rangeFToModify.setValue('=IF(E2="","","No")');
}
}}
鏈接到作業表
uj5u.com熱心網友回復:
將公式插入一列單元格
function updateEformula() {
const ss = SpreadsheetApp.getActive();
const sh = ss.getSheetByName("Active Student List");
const rg = sh.getRange(2, 5, sh.getLastRow() - 1);
const vs = rg.getValues();
vs.forEach((r,i) => {
if(r[0] == "") {
sh.getRange(i 2,5).setFormula(formula for row i 2,column 5);
sh.getRange(i 2,6).setFormula(formule for row i 2,column 6)
}
});
}
uj5u.com熱心網友回復:
@Cooper提供了上面的大部分答案。但是,我們調整了最后 2 行,以便公式針對作業表中的每一行進行調整。這需要使用模板文字。我在這里借用了模板文字的使用示例。
function updateEFformulas() {
const ss = SpreadsheetApp.getActive();
const sh = ss.getSheetByName("Active Student List");
const rg = sh.getRange(2, 5, sh.getLastRow() - 1);
const vs = rg.getValues();
vs.forEach((r,i) => {
if(r[0] == "") {
sh.getRange(i 2,5).setValue('=IFERROR(INDEX(StudentMatches!B:B,Match' '(A' (i 2) ',StudentMatches!D:D,0)),"")');
sh.getRange(i 2,6).setValue('=IF' '(E' (i 2) '="","","No")')
}
});
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/443762.html
上一篇:突出顯示部分重復的同一列
下一篇:基于電子郵件發送的更新表
