当前,当 A 列的下拉列表显示“完成”时,我可以将行从选项卡移动到“已完成”选项卡。然后,“已完成”选项卡中的 A 列将替换为移动行的日期。 新问题是我希望“已完成”选项卡中的 B 列(类别)告诉我该行移出的原始选项卡名称是什么。我将有几个部门,按选项卡排序,完成的任务将全部存储在一个“已完成”选项卡上。 这可能吗?
这里是谷歌表格的链接:https://docs.google.com/spreadsheets/d/1_2Do2Eu4Hb61seupPJcWLynyEtT5xQtvkO8DEQaRJU0/edit?usp=sharing
您可以简单地使用 unshift() 添加另一行。那么代码就会是这样的:
function onEdit(e) {
let range = e.range;
let col = range.getColumn();
let row = range.getRow();
let val = range.getValue();
let sourceName = e.source.getActiveSheet().getName();
if (col == 1 && val == 'Done') {
let today = Utilities.formatDate(new Date(), "GMT-4", "M/d/yy");
let ss = SpreadsheetApp.getActiveSpreadsheet();
let sourceSheet = ss.getSheetByName(sourceName);
let data = sourceSheet.getRange(row, 2, 1, 4).getValues();
data[0].unshift(sourceName);
data[0].unshift(today);
let targetSheet = ss.getSheetByName('Completed');
targetSheet.appendRow(data[0]);
sourceSheet.deleteRow(row);
}
}