Google Apps 脚本 - 在目标工作表中查找最后的数据,然后附加源工作表中的剩余数据

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

经过大量搜索,我发现下面的一段代码可以工作,但它完全覆盖目标数据而不是附加。那么,我如何找到目标表中最后输入的数据(例如 B 列),然后从那里附加数据-

function copy() {
  var sourceSS = SpreadsheetApp.getActiveSpreadsheet();
  var sourceSheet = sourceSS.getSheetByName("Sheet1");
  var targetSS = SpreadsheetApp.openById("spreadsheetkey");
  var targetSheet = targetSS.getSheetByName("SheetAB1");

  var ranges = ["A5:H1100", "J5:M1100", "U5:X1100"];
  ranges.forEach(range => {
    var data = sourceSheet.getRange(range).getValues();
    targetSheet.getRange(range).setValues(data);
  })
}

我想添加一行代码,它将在目标表中找到最后输入的数据,该数据将与源表匹配,然后将数据粘贴到目标表中。

google-sheets google-apps-script
1个回答
0
投票

试试这个:

function copy() {
  const sss = SpreadsheetApp.getActive();
  const ssh = sss.getSheetByName("Sheet0");
  const tss = SpreadsheetApp.openById(gobj.globals.ssid);
  const tsh = tss.getSheetByName("Sheet1");
  const [a, b, c, d, e, f, g, h, , j, k, l, m, , , , , , , , u, v, x] = ssh.getRange(ssh.getLastRow(), 1, 1, 24).getValues().flat();
  const dlr = tsh.getLastRow();
  tsh.getRange(dlr + 1, 1, 1, 8).setValues([[a, b, c, d, e, f, g, h]]);
  tsh.getRange(dlr + 1, 10, 1, 4).setValues([[j, k, l, m]]);
  tsh.getRange(dlr + 1, 21, 1, 3).setValues([[u, v, x]]);
}
© www.soinside.com 2019 - 2024. All rights reserved.