首页 > 解决方案 > 应用程序脚本 - 为时间戳大于上一个函数运行的行运行函数

问题描述

我有一张由多个用户不断编辑的 2000 行和 60 列的工作表。我必须每 10 分钟将这张表同步到另一张表,所以我编写了以下脚本来执行此操作。

// Sync Sheet 
// Monday through Friday between 9am and 6pm

function TriggerSync() {

    var date = new Date();
    var day = date.getDay();
    var hrs = date.getHours();

    if ((day >= 1) && (day <= 5) && (hrs >= 9) && (hrs <= 18)) {


        // Sync  
        var sourceSpreadSheet = SpreadsheetApp.getActiveSpreadsheet();
        var srcSheet = sourceSpreadSheet.getSheetByName("Overview");

        //destination spreadsheet (Intermediate)
        var destinationSpreadSheet = SpreadsheetApp.openById('Spreadsheet ID');
        var destSheet = destinationSpreadSheet.getSheetByName("intermediate");

        //get Data from Souce Sheet
        var values = srcSheet.getRange(5, 2, 2000, 60).getValues();

        //dump 
        destSheet.getRange(2, 3, 2000, 60).setValues(values);

    }
}

这工作正常,但正如您可以想象的那样,复制所有这些数据,无论它自上次同步以来是否已更改,都会花费大量时间并导致函数超时。我现在计划在第 62 列中写一个时间戳,然后只同步时间戳大于上一个函数运行的行。

但在这里我不知从何开始。感谢有关如何开始的任何帮助。

提前致谢

标签: javascript

解决方案


推荐阅读