首页 > 解决方案 > Google Apps 脚本 - 表格 - 包含 INCLUDES 的 IF 语句

问题描述

我正在尝试创建一个脚本,该脚本根据 E 列中的内容复制一行。如果该列具有“CORE”、“WARRANTY”或包含“DAMAGE”,它将被复制。我已经在下面的代码中找出了“CORE”和“WARRANTY”部分,但我不确定如何使用包括:

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

  if(s.getName() == "MAIN" && r.getColumn() == 5 && r.getValue() == "CORE"  || r.getValue() == "WARRANTY" || r.includes("DAMAGE")) {
    var row = r.getRow();
    var numColumns = s.getLastColumn();
    var targetSheet = ss.getSheetByName("ELITE");
    var target = targetSheet.getRange(targetSheet.getLastRow() + 1, 1);
    s.getRange(row, 1, 1, numColumns).copyTo(target);
    }
}

提前致谢!

标签: google-apps-scriptgoogle-sheets

解决方案


这段代码是我最终的工作:

function onEdit(event) {

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

  if(s.getName() == "MAIN" && r.getColumn() == 5 && r.getValue() == "CORE"  || r.getValue() == "WARRANTY" || event.value.indexOf("DAMAGE") >= 0) {
    var row = r.getRow();
    var numColumns = s.getLastColumn();
    var targetSheet = ss.getSheetByName("ELITE");
    var target = targetSheet.getRange(targetSheet.getLastRow() + 1, 1);
    s.getRange(row, 1, 1, numColumns).copyTo(target);
    }
}

推荐阅读