将行从一个 Google Sheet 选项卡移动到另一个并引用原始选项卡

问题描述 投票:0回答:1

当前,当 A 列的下拉列表显示“完成”时,我可以将行从选项卡移动到“已完成”选项卡。然后,“已完成”选项卡中的 A 列将替换为移动行的日期。 新问题是我希望“已完成”选项卡中的 B 列(类别)告诉我该行移出的原始选项卡名称是什么。我将有几个部门,按选项卡排序,完成的任务将全部存储在一个“已完成”选项卡上。 这可能吗?

这里是谷歌表格的链接:https://docs.google.com/spreadsheets/d/1_2Do2Eu4Hb61seupPJcWLynyEtT5xQtvkO8DEQaRJU0/edit?usp=sharing

google-sheets row move
1个回答
0
投票

您可以简单地使用 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);
  }
}
© www.soinside.com 2019 - 2024. All rights reserved.