如何基于从单独的电子表格导入的单元格在Google表格中使用onEdit触发器

时间:2018-07-24 12:30:57

标签: google-sheets triggers

我对所有这一切都非常陌生,并且在使脚本按我预期的方式运行时遇到问题。我将尽力解释这种情况以及我试图做的最好的事情,但是如果需要,请提出问题以进行澄清。

我正在使用一个仪表板,该仪表板将跟踪项目,项目状态(按进度,进度落后,已完成等),注释和目标完成日期。目标是运行一个脚本,该脚本将在状态设置为“已完成”时将项目移动到新的仪表板。由于状态如何设置而出现此问题。该仪表板由一大批单独的项目仪表板组成,每个仪表板都位于自己的电子表格中。在这些电子表格中,从下拉菜单中选择状态,然后将其导入到项目仪表板中。

我尝试使用onEdit()触发器,但无法将导入数据中的更改识别为编辑。

要彻底解决问题,是否总有一个触发器可以识别导入数据的变化?

这是我目前正在使用的脚本:

function onEdit(event) {
    var ss = SpreadsheetApp.getActiveSpreadsheet();
    var s = event.source.getActiveSheet();
    var r = event.source.getActiveRange();

    if(s.getName() == "SDC Overall Dashboard" && r.getColumn() == 2 && 
    r.getValue() == "Completed") {         
        var row = r.getRow();                                                                                    
        var numColumns = s.getLastColumn();                                                                      
        var targetSheet = ss.getSheetByName("SDC Program Dashboard");                                            
        var lastRow = targetSheet.getLastRow();                                                                  
        targetSheet.insertRowBefore(lastRow);                                                                    
        var target = targetSheet.getRange(targetSheet.getLastRow() - 1, 1);                                      
        s.getRange(row, 1, 1, numColumns).moveTo(target);                                                        
        s.deleteRow(row);                                                                                        
    }
}

0 个答案:

没有答案