Это примерно та же функция.Я просто изменил его, чтобы облегчить процесс отладки.Он копирует столбцы из источника в место назначения, если Sprint имеет «Done» в этом столбце.
function copySheet() {
var srcsh = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Source");
var dessh = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Destination");
var from = ['A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U'];
var to = ['A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U'];
for(var i=0;i<from.length;i++) {
var fromrg = from[i] + ':' + from[i];
var torg = to[i] + ':' + to[i];
var src = srcsh.getRange(fromrg);
var des = dessh.getRange(torg);
if(findInColumn(from[i],'Done')!== -1){
src.copyTo(des);
}
}
}
function findInColumn(col, data) {
var col=col || 'A';//This is here for initial testing so I could run the function without parameters.
var data=data || 'Done';
var sh = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Sprint");
var rg = sh.getRange(col + "1:" + col + sh.getMaxRows());//MaxRows is kind of big but I was not sure what else you'd like to do and I dont know what your Sprint sheet looks like.
var vA = rg.getValues();
var rv=-1;
for(var i=0;i<vA.length;i++){
if(vA[i][0]==data){
rv=i+1;
break;
}
}
return rv;
}
Я вижу, что вы немного изменили вопрос.Эта функция просматривает ваш спринт-лист, как вы показываете в своем ответе, и копирует из источника в место назначения только те столбцы, которые содержат слово «Готово» в любой строке этого столбца.Но он проверяет каждый столбец в вашем "columns_to_be_copied", который я назвал "от".Первоначально, это то, что ваша функция пыталась сделать.Поэтому я просто хотел уточнить, что делает эта функция.Если это не то, что вы хотите, оставьте комментарий, и я удалю его.