有没有办法用脚本将数据从一张表复制到另一张表



我希望将数据从一张表复制到另一张表,同时能够从第一张表中删除数据,并用表1中的新数据连续更新第二张表。

工作表1的信息来自表格,我希望能够每天删除数据,因为添加的数据越多,计算速度就越慢。然后我想把这些数据复制到活页2中。同时保留所有过去输入的数据。

这是一个链接到工作表(旧的和保留(

https://docs.google.com/spreadsheets/d/1hLvbJL_21WWSsaEfBWj2XgKJAqlB6eIO6MwBFJAGmmI/edit?usp=sharing

这是脚本

{
var sheet = SpreadsheetApp.getActive();
var originSheet = sheet.getSheetByName("old");
var row = sheet.getSheetByName("old").getLastRow();
var col = sheet.getSheetByName("old").getLastColumn();
var listToCopy = originSheet.getRange('old!A1:' + col + row);
var destinationSheet = sheet.getSheetByName("keep");
var row1 = sheet.getSheetByName("keep").getLastRow();
var destinationColum = destinationSheet.getLastColumn();
listToCopy.copyTo(destinationSheet.getRange("keep!A" + (row1 + 1)));
spreadsheet.setActiveSheet(spreadsheet.getSheetByName("old"), true);
spreadsheet.getActiveRangeList().clear({contentsOnly: true, skipFilteredRows: true});
}; ```

说明:

  • 假设old源工作表已连接到表单,则最好在数据粘贴到新工作表后删除行。否则,表单中的新数据将直接附加在上次输入的行之后。要删除连续的行,请使用deleteRows(rowPosition,howMany(。

  • 以下脚本将从源工作表获取当前数据,将其粘贴到目标工作表,并删除源工作表中数据所在的行。我还检查是否有指定范围内的数据要复制。

解决方案:

function copyTokeep() {
const ss = SpreadsheetApp.getActive();
const src_sh = ss.getSheetByName('old');
const src_lr = src_sh.getLastRow();
const dest_sh = ss.getSheetByName('keep');
const src_data = src_sh.getRange('A2:K'+src_lr).getValues();
if (src_lr>1){
src_sh.deleteRows(2,src_lr-1);  
dest_sh.getRange(dest_sh.getLastRow()+1,1,src_data.length,src_data[0].length).setValues(src_data);
}
}

相关内容

最新更新