我的Google脚本不再运行了

时间:2013-12-16 23:08:31

标签: google-apps-script

我之前使用过这个谷歌脚本,根据一列中的条件值(第12列)将信息从一张纸移动到另一张纸。但是,它最近停止响应/运行,我无法弄清楚原因。我玩了触发器,我试图在新脚本中使用它并更改一些名称和列#,但似乎没有任何效果。关于我在哪里可以找出发生了什么的任何建议?

function onEdit(e) {
    var ss = SpreadsheetApp.getActiveSpreadsheet();
    var s = ss.getActiveSheet();
    var r = ss.getActiveRange();
    if(s.getName() == "Phx-DFF" && r.getColumn() == 12 && r.getValue() == "no") 
    {
        var row = r.getRow();
        var numColumns = s.getLastColumn();
        var targetSheet = ss.getSheetByName("NY-DFF");
        if(targetSheet.getLastRow() == targetSheet.getMaxRows()) 
        {
            targetSheet.insertRowsAfter(targetSheet.getLastRow(), 5); //inserts 20 rows after last used row
        }
        var target = targetSheet.getRange(targetSheet.getLastRow() + 1, 1);
        s.getRange(row, 1, 14, numColumns).moveTo(target);
        s.deleteRow(row);
    }
}

1 个答案:

答案 0 :(得分:0)

您是否尝试在调试模式下使用日志记录或运行该功能,以查看运行此功能时发生的事情。

我想建议对函数进行以下更改,因为eventinfo JSON提供了大量信息:

function onEdit(e) {
var ss = e.source;
var r = e.Range;

if(ss.getSheetName() == "Phx-DFF" && r.getColumn()  == 12 && e.value == "no") 
{
    var s = ss.getActiveSheet();
    var row = r.getRow();
    var numColumns = s.getLastColumn();
    var targetSheet = ss.getSheetByName("NY-DFF");
    if(targetSheet.getLastRow() == targetSheet.getMaxRows()) 
    {
        targetSheet.insertRowsAfter(targetSheet.getLastRow(), 5); //inserts 20 rows after last used row 
    }//I dont think this is necessary, GAS should takes care of this auto. Remove this part
    var target = targetSheet.getRange(targetSheet.getLastRow() + 1, 1);
    s.getRange(row, 1, 14, numColumns).moveTo(target);
    s.deleteRow(row);
}
}