Google表格自动复制,粘贴,删除

时间:2019-01-24 01:22:52

标签: google-apps-script google-sheets

没有人知道一个脚本,该脚本可以让我从Sheet1的单元格A3:E1000复制数据并将其粘贴到Sheet2。粘贴后,我需要它删除它从Sheet1复制的确切数据(Sheet2仍将复制数据),我每天晚上11:30都需要这样做。我需要Sheet2能够将数据永久保存为每天从Sheet1复制的数据的数字存档。我希望这是有道理的。我不知道。当我运行此程序时,如果我运行DailyLog然后分别运行clearRange,它将起作用。当我运行autoArchive时,它将从信息表中删除数据,但不会将其粘贴到存档表中。

function autoArchive(){
dailyLog();
clearRange();
}

function dailyLog() {
var ss = SpreadsheetApp.openById("SheetID").getSheetByName("Info");
var sourceSheet = ss.getSheetByName('Info');
var logSheet = ss.getSheetByName('Archive');
var lastRow = logSheet.getLastRow();
var range = sourceSheet.getDataRange();
range.copyTo(logSheet.getRange(lastRow + 2, 1), {contentsOnly: false});
}

function clearRange() {
   var sheetActive = 
SpreadsheetApp.openById("SheetID").getSheetByName("Info");
  var start, end;
  start = 2;
  end = sheetActive.getLastRow() - 1;
  sheetActive.deleteRows(start, end);
}

2 个答案:

答案 0 :(得分:1)

看看record macro函数,它将为您生成Google Apps脚本。只需记录您执行的步骤并为其命名即可,因此您只需单击菜单中的宏或使用快捷方式即可。

@Cooper电子表格的当前限制为5.000.000单元格。是在一张纸中还是全部纸中都没关系。但是,在不久的将来,这种情况可能会增加。

答案 1 :(得分:0)

使用SpreadsheetApp.flush();强制Google Apps脚本应用到目前为止所做的更改。

示例:

function autoArchive(){
  dailyLog();
  SpreadsheetApp.flush();
  clearRange();
}