我对所有这一切都非常陌生,并且在使脚本按我预期的方式运行时遇到问题。我将尽力解释这种情况以及我试图做的最好的事情,但是如果需要,请提出问题以进行澄清。
我正在使用一个仪表板,该仪表板将跟踪项目,项目状态(按进度,进度落后,已完成等),注释和目标完成日期。目标是运行一个脚本,该脚本将在状态设置为“已完成”时将项目移动到新的仪表板。由于状态如何设置而出现此问题。该仪表板由一大批单独的项目仪表板组成,每个仪表板都位于自己的电子表格中。在这些电子表格中,从下拉菜单中选择状态,然后将其导入到项目仪表板中。
我尝试使用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);
}
}