经过大量搜索,我发现下面的一段代码可以工作,但它完全覆盖目标数据而不是附加。那么,我如何找到目标表中最后输入的数据(例如 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);
})
}
我想添加一行代码,它将在目标表中找到最后输入的数据,该数据将与源表匹配,然后将数据粘贴到目标表中。
试试这个:
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]]);
}