Показаны сообщения с ярлыком Google apps Script. Показать все сообщения

четверг, 12 марта 2015 г.

Копирование или перемещение строки на лист, по значению.Google Таблица

Данный скрипт позволяет копировать строку на лист по значению.

Создайте копию таблицы и авторизуйте скрипт, который лежит внутри:

var ss=SpreadsheetApp.getActiveSpreadsheet();
var master = ss.getSheetByName('Общий');
var colWidth = master.getLastColumn();
var sheets = ss.getSheets();

function onOpen() {
  var menuEntries = [ {name: "Копировать", functionName: "copyRows"},     ];
  ss.addMenu("Копирование",menuEntries);
}

function copyRows() {
  var sheetNames = [];// 
  var sheets = ss.getSheets();
  for(s=0;s<sheets.length;++s){sheetNames.push(sheets[s].getName())};
  var selectedfirstRow = ss.getActiveSelection().getRowIndex();
  var selectedHeigth = ss.getActiveSelection().getHeight()
  var selectedFullRange = master.getRange(selectedfirstRow,1,selectedHeigth,colWidth);
  var data = selectedFullRange.getValues();
  for(n=0;n<data.length;++n){
    if(data[n][1].length<16){
     if(sheetNames.toString().match(data[n][1].toString().replace(/ /g,''))!=data[n][1].toString().replace(/ /g,'')){
     master.getRange(1,1,2,colWidth).copyTo(newSheet.getRange(1,1));
     SpreadsheetApp.flush();
     var sheets = ss.getSheets();
     var sheetNames = [];
     for(s=1;s<sheets.length;++s){sheetNames.push(sheets[s].getName())};
     Logger.log(sheetNames)
     };
     var dest = ss.getSheetByName(data[n][1].toString().replace(/ /g,''));
     Logger.log(data[n][1].toString().replace(/ /g,''))
     var destRange = dest.getRange(dest.getLastRow()+1,1);
     master.getRange(selectedfirstRow+n,1,1,colWidth).copyTo(destRange);
     master.deleteRow(ss.getActiveRange().getRow());
     }
  }
}


После авторизации у Вас появится кнопка "Копирование". 
Так же можно заменить копирование на перенос строки. Для этого нужно добавить в конце кода- master.deleteRow(ss.getActiveRange().getRow());