在完成的行中添加 "done" 或 "added" 之类的词
Adding word like "done" or "added" to the completed row
我有这个脚本来添加导入范围公式:
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
我正在寻找的是将“完成”或“添加”之类的词添加到已完成的行中,我希望脚本在下次 运行 时不再执行这些行。
我希望有人能帮助我。
你的情况,下面的修改怎么样?
修改后的脚本:
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”列。这样,当脚本是 运行 第二次时,将跳过“E”列中带有 done
的行。
注:
- 如果您想使用
added
代替done
,请修改const check = "done";
。
参考文献:
我有这个脚本来添加导入范围公式:
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
我正在寻找的是将“完成”或“添加”之类的词添加到已完成的行中,我希望脚本在下次 运行 时不再执行这些行。 我希望有人能帮助我。
你的情况,下面的修改怎么样?
修改后的脚本:
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”列。这样,当脚本是 运行 第二次时,将跳过“E”列中带有done
的行。
注:
- 如果您想使用
added
代替done
,请修改const check = "done";
。