Как настроить скрипт, который будет автоматически копировать строку с листа 1 на лист 2 с заданным цветом фона - PullRequest
0 голосов
/ 31 января 2020

Я хочу извлечь строки с желтым цветом bg с листа 1 на лист 2 в листах Google. Сценарий, макрос или кнопка были бы хороши, поэтому мне нужно настроить их только один раз, и когда строка будет выделена, она автоматически будет скопирована на лист 2. Это возможно?

1 Ответ

0 голосов
/ 31 января 2020
function moveYellow() {
  var ss=SpreadsheetApp.getActive();
  var sh=ss.getSheetByName('Sheet1');
  var csh=ss.getSheetByName('Sheet2');
  var rg=sh.getRange(2,1,sh.getLastRow()-1,sh.getLastColumn());
  var v=rg.getValues();
  var b=rg.getBackgrounds();
  var d=0;//deleted row counter
  for(var i=0;i<v.length;i++) {
    if(b[i][0]=='#ffff00') {
      csh.appendRow(v[i]);
      //sh.deleteRow(i+2-d++);
    }
  } 
}

Копирует только столбцы A, C, E

function runOne() {
  var ss=SpreadsheetApp.getActive();
  var sh=ss.getSheetByName('Sheet1');
  var csh=ss.getSheetByName('Sheet2');
  var rg=sh.getRange(2,1,sh.getLastRow()-1,sh.getLastColumn());
  var v=rg.getValues();
  var b=rg.getBackgrounds();
  var d=0;//deleted row counter
  for(var i=0;i<v.length;i++) {
    if(b[i][0]=='#ffff00') {
      csh.appendRow(v[i].map(function(c,i){if(i==0 || i==2 || i==4){return c;}}).filter(function(e){return e}));
      //sh.deleteRow(i+2-d++);
    }
  } 
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...