没有人知道一个脚本,该脚本可以让我从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);
}
答案 0 :(得分:1)
看看record macro函数,它将为您生成Google Apps脚本。只需记录您执行的步骤并为其命名即可,因此您只需单击菜单中的宏或使用快捷方式即可。
@Cooper电子表格的当前限制为5.000.000单元格。是在一张纸中还是全部纸中都没关系。但是,在不久的将来,这种情况可能会增加。
答案 1 :(得分:0)
使用SpreadsheetApp.flush();
强制Google Apps脚本应用到目前为止所做的更改。
示例:
function autoArchive(){
dailyLog();
SpreadsheetApp.flush();
clearRange();
}