If statement Else If-Google脚本

If statement Else If-Google脚本,if-statement,google-apps-script,google-sheets,triggers,If Statement,Google Apps Script,Google Sheets,Triggers,这个脚本以前在我的谷歌工作表上工作过,然后突然,它停止了工作。我注意到第一个参数(if)起作用了,但之后的所有代码都不起作用。有什么想法吗 function onEdit(event) { // assumes source data in sheet named Sheet1 // target sheet of move to named Sheet2 // test column with yes is col 7 or G var ss = SpreadsheetApp.

这个脚本以前在我的谷歌工作表上工作过,然后突然,它停止了工作。我注意到第一个参数(if)起作用了,但之后的所有代码都不起作用。有什么想法吗

function onEdit(event) {
  // assumes source data in sheet named Sheet1
  // target sheet of move to named Sheet2
  // test column with yes is col 7 or G
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var s = event.source.getActiveSheet();
  var r = event.source.getActiveRange();

  if(s.getName() == "Under Contract Response Form" && r.getColumn() == 7 && (r.getValue() == "Closed" || r.getValue() == "Expired" || r.getValue() == "Cancelled")) {
  var row = r.getRow();
  var numColumns = s.getLastColumn();
  var targetSheet = ss.getSheetByName("Closed/Expired & Cancelled");
  var target = targetSheet.getRange(targetSheet.getLastRow() + 1, 1);
  s.getRange(row, 1, 1, numColumns).copyTo(target);
  s.deleteRow(row);
  } else if(s.getName() == "Listing Response Form" && r.getColumn() == 7 && r.getValue() == "Pending" ) {
  var row = r.getRow();
  var numColumns = s.getLastColumn();
  var targetSheet = ss.getSheetByName("Under Contract Response Form");
  var target = targetSheet.getRange(targetSheet.getLastRow() + 1, 1);
  s.getRange(row, 1, 1, numColumns).copyTo(target);
  s.deleteRow(row);
   } else if(s.getName() == "Listing Response Form" && r.getColumn() == 7 && r.getValue() == "Cancelled" ) {
  var row = r.getRow();
  var numColumns = s.getLastColumn();
  var targetSheet = ss.getSheetByName("Closed/Expired & Cancelled");
  var target = targetSheet.getRange(targetSheet.getLastRow() + 1, 1);
  s.getRange(row, 1, 1, numColumns).copyTo(target);
  s.deleteRow(row);
  } else if(s.getName() == "Under Contract Response Form" && r.getColumn() == 7 && (r.getValue() == "Pre-list" || r.getValue() == "Withheld" || r.getValue() == "Coming Soon" || r.getValue() == "Active")) {
  var row = r.getRow();
  var numColumns = s.getLastColumn();
  var targetSheet = ss.getSheetByName("Listing Response Form");
  var target = targetSheet.getRange(targetSheet.getLastRow() + 1, 1);
  s.getRange(row, 1, 1, numColumns).copyTo(target);
  s.deleteRow(row);
  } else if(s.getName() == "Closed/Expired & Cancelled" && r.getColumn() == 7 && r.getValue() == "Pending" ) {
  var row = r.getRow();
  var numColumns = s.getLastColumn();
  var targetSheet = ss.getSheetByName("Under Contract Response Form");
  var target = targetSheet.getRange(targetSheet.getLastRow() + 1, 1);
  s.getRange(row, 1, 1, numColumns).copyTo(target);
  s.deleteRow(row);
  }
}

脚本看起来很好,因此可能有一个或多个工作表被重命名,或者列被插入或删除。检查图纸名称并查找前导空格或尾随空格之类的内容。还要确保触发行移动的值出现在G列中

通过使用列名而不是列号,可以使行移动更加稳健。请参阅脚本。

欢迎使用。请添加一个。在这个特定的示例中,包括表名和添加
console.log
语句。另外,请记住,编辑触发器上的
getActive…
方法可能会导致问题,特别是如果用户在激活另一个范围之前没有等待脚本完成执行。