使用时间触发器,谷歌脚本将状态列的值更改为“旧”

时间:2015-06-15 16:38:00

标签: google-apps-script google-sheets

所以我正在开发谷歌脚本来创建一个简单的问题跟踪器。

在表单提交时,它会在“new”下创建“column”问题。我想在午夜将“Status”列的值更改为“old”。我被代码困住了。

时间我想在午夜设置时间驱动的触发器。请帮助。

function changeStatus() {

    // var sheet = SpreadsheetApp.getActiveSheet(); 
    var row = sheet.getLastRow();
    //var lastRow = sheet.getR
    // Set the status of the new ticket to 'New'.
    // Column F is the Status column


    var ss = SpreadsheetApp.getActiveSpreadsheet();
    var sheet = ss.getSheets()[0];

    //var range = sheet.getRange("F2:F4");
    //var row = range.getRow();

    for (var i = 0; i >= row; i--) {
        sheet.getRange(i, getColIndexByName("Status")).setValue("old");

    }

}

1 个答案:

答案 0 :(得分:0)

您需要解释问题是什么或者您想要帮助的地方。

如果该功能没有触发,那么可能是因为getActiveSpreadsheet不适用于时间触发器,因为当它触发你的电子表格时可能不会打开(激活)。请改用openByID(ID可在URL中找到)。

就代码的其余部分而言,如果您只有两种状态并且效率不是太重要,那么似乎很好。如果您有两种以上的状态,则必须检查状态是否为new,然后将其更改为old,并保留其他状态。

此外,您可以考虑存储一个持久值来指示您中断的位置。从逻辑上讲,任何东西都不应该恢复为new,因此您不需要更改以前行的状态。考虑到这一点,如果你从前一天离开的地方开始,它将使你不必遍历所有行。