Google脚本神秘的执行时间和记录器行为

时间:2018-08-22 15:39:46

标签: logging spreadsheet execution

这是我第一次使用Google脚本,并且我以前没有任何JavaScript经验。几天前,我的脚本停止更新日志,据我所知,它没有运行。 相反,它在顶部显示了以下两个消息之一:“正在运行函数类计划...”或“正在准备执行...”。

起初,我更改了Logger.log()语句以使记录器显示不同的内容,但是我注意到该日志没有被更新。我以为这是我的互联网连接(即使我的其他选项卡也很好),所以我决定停下来,然后再继续。我今天回到了它,并且在不同的互联网上,但问题仍然存在。

function ClassPlans(period, prep, curren) {

    Logger.clear();
    var spread = SpreadsheetApp.getActiveSpreadsheet();
    var calendar = spread.getActiveSheet();
    var planned = calendar.getCurrentCell();
    var row = planned.getRow();
    var column = planned.getColumn();
    Logger.log("1");

    var everything = calendar.getRange(1,column,row-1).getValues();


    var prep_name = everything[1];
    var period_name = everything[0];
    var last = everything.length - 1;
    while (everything[last] == ''){
        last = last -1;
    }
    var previous = everything[last];
    var prep_info = spread.getSheetByName(prep_name);
    var curriculum = prep_info.getRange("G7:G148").getValues();
    var skew = 0;
    if (period_name == "Period 2"){skew = skew + 4;}
    if (period_name == "Period 3"){skew = skew + 8;}
    if (period_name == "Period 4"){skew = skew + 12;}
    if (period_name == "Period 5"){skew = skew + 16;}
    if (period_name == "Period 6"){skew = skew + 20;}
    var period_info = prep_info.getRange(7,skew + 10,293,1);
    var count = 0;
    Logger.log("last");
    while (curriculum[count] != previous){
        Logger.log("hI");
        count = count + 1;
    }
    return previous;
}

在此处输入代码

更奇怪的是:记录器本身进行了更新,但未显示与我在该函数的当前版本中调用的Logger.log()同步的内容...它们确实与该函数的先前版本进行了同步我写过我对记录器感到困惑,也对功能为何超出最大执行时间感到困惑,因为据我所知,我的while循环格式正确,绝不会创建无限循环。我还尽量减少了对电子表格和表格的调用。我唯一能想到的就是放慢速度,这可能是因为我对工作表的呼叫很大吗?我想念什么吗?还是我有一些多余的东西是不必要的? Log picture

0 个答案:

没有答案