根据单元格字体颜色移动行

时间:2018-08-10 03:50:41

标签: google-apps-script colors google-sheets triggers

我正在制作一本自动调度工作手册,总共5张:
烹饪TBS |冰箱TBS |世界粮食计划署PRF |完成

使用特定的字体颜色输入呼叫:如果它们正在“烹饪”字体颜色黑色(#000000)。如果它们是“冰箱”,则字体颜色为蓝色(#0000ff)。  -在表格顶部输入新呼叫。  -具有删除线格式的呼叫已移至已完成(正在进行的工作)  -等待信息的呼叫会标有“?”并移至PRF表  -等待零件的呼叫被标记为“-”,并被移至WFP工作表  -可以安排回叫的电话带有“ X”标记

我想根据单元格的字体颜色和值来移动单元格,例如如果字体为“蓝色”并且单元格值为“ X”,则应将其和相关单元格移至“冰箱TBS”。

我能够仅根据价值来移动单元格:

function onEdit(event) {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var s = event.source.getActiveSheet();
  var r = event.source.getActiveRange();
  var cookingcolor = '#000000';
  var fridgecolor = '#0000ff';

  if (r.getColumn() == 6 && r.getValue() == "?") {
    var row = r.getRow();
    var numColumns = s.getLastColumn();
    var targetSheet = ss.getSheetByName("PRFs");
    var target = targetSheet.getRange(targetSheet.getLastRow() + 1, 1);
    s.getRange(row, 1, 1, numColumns).moveTo(target);
    s.deleteRow(row);
  }
  if (r.getColumn() == 6 && r.getValue() == "-") {
    var row = r.getRow();
    var numColumns = s.getLastColumn();
    var targetSheet = ss.getSheetByName("WFP");
    var target = targetSheet.getRange(targetSheet.getLastRow() + 1, 1);
    s.getRange(row, 1, 1, numColumns).moveTo(target);
    s.deleteRow(row);
  }

当我还检查字体颜色时,不再发生移动:

  if (r.getColumn() == 6 && r.getValue() == "X" && r.getFontColor() == fridgecolor) {
    var row = r.getRow();
    var numColumns = s.getLastColumn();
    var targetSheet = ss.getSheetByName("REFRIG TBS");
    var target = targetSheet.getRange(targetSheet.getFirstRow() + 1, 1);
    s.getRange(row, 1, 1, numColumns).moveTo(target);
    s.deleteRow(row);
  }

  if (r.getColumn() == 6 && r.getValue() == "X" && r.getFontColor() == cookingcolor) {
    var row = r.getRow();
    var numColumns = s.getLastColumn();
    var targetSheet = ss.getSheetByName("Cooking TBS");
    var target = targetSheet.getRange(targetSheet.getFirstRow() + 1, 1);
    s.getRange(row, 1, 1, numColumns).moveTo(target);
    s.deleteRow(row);
  }
  ...
}

Example workbook

0 个答案:

没有答案