我有這個腳本來添加 importrange 公式:
function setImportRangeFromList1() {
const ss = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("List");
const rows = ss.getRange('A2:D').getValues().filter(r=> r[1])
rows.map(row => SpreadsheetApp.openById(row[0]).getSheetByName(row[1]).getRange(row[2]).setFormula(row[3]))
}
這里是電子表格: https ://docs.google.com/spreadsheets/d/1GeVSs3zfuxNYzGybwpTuGGNcwV7U--8VksUHzc5f9p4/edit#gid=0
我正在尋找的是在已完成的行中添加“完成”或“添加”之類的詞,并且我希望腳本在下次運行時不要再次執行這些行。我希望有人能幫我解決這個問題。
uj5u.com熱心網友回復:
在您的情況下,如何進行以下修改?
修改后的腳本:
function setImportRangeFromList1() {
const check = "done";
const ss = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("List");
const rows = ss.getRange('A2:E').getValues();
const ranges = rows.map((row, i) => {
if (row[1] && row[4] != check) {
SpreadsheetApp.openById(row[0]).getSheetByName(row[1]).getRange(row[2]).setFormula(row[3]);
return `E${i 2}`;
}
return "";
}).filter(String);
if (ranges.length == 0) return;
ss.getRangeList(ranges).setValue(check);
}
- 在此修改中,當檢查列“e”時,當單元值不是
done時,SpreadsheetApp.openById(row[0]).getSheetByName(row[1]).getRange(row[2]).setFormula(row[3])運行,并將done列為“E”。這樣,當腳本第二次運行時,done“E”列中的行將被跳過。
筆記:
- 如果要使用
added代替done,請修改const check = "done";。
參考:
- 地圖()
- getRangeList(a1Notations)
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/452726.html
