If statement Else If-Google脚本
这个脚本以前在我的谷歌工作表上工作过,然后突然,它停止了工作。我注意到第一个参数(if)起作用了,但之后的所有代码都不起作用。有什么想法吗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.
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…
方法可能会导致问题,特别是如果用户在激活另一个范围之前没有等待脚本完成执行。