// Я пытаюсь импортировать данные для определенных c членов команды на основе статуса проекта. Код работает хорошо, если только потянуть на 1 вкладку, но не на все 12 вкладок. Кроме того, если бы вы могли дать представление о том, как сопоставлять заголовки столбцов, данные могут иногда изменяться от листа к листу. Данные будут при запуске и обновлении, но данные не должны перезаписывать данные, которые все еще соответствуют критериям, установленным в коде. Заранее спасибо за вашу помощь.
Лист данных: https://docs.google.com/spreadsheets/d/1X_NBWq1m9iBxvYXhy2wcttHanvPFPlAOJWgbbKbJimQ/edit#gid = 602022015
Целевой лист: https://docs.google.com/spreadsheets/d/1oFRs48JHCrH82msFkGrZ8iqDpyAdXww1e1EZYf6FRx8/edit#gid = 0
function myFunction() {
var sss = SpreadsheetApp.openById('1X_NBWq1m9iBxvYXhy2wcttHanvPFPlAOJWgbbKbJimQ'); //replace with source ID
var ss1 = sss.getSheetByName('January'); //replace with source Sheet tab name
var ss = sss.getSheetByName('February');
var ss2 = sss.getSheetByName('March');
var ss3 = sss.getSheetByName('April');
var ss4 = sss.getSheetByName('May');
var ss5 = sss.getSheetByName('June');
var ss6 = sss.getSheetByName('July');
var ss7 = sss.getSheetByName('August');
var ss8 = sss.getSheetByName('September');
var ss9 = sss.getSheetByName('October');
var ss10 = sss.getSheetByName('November');
var ss11 = sss.getSheetByName('December');
var range = ss.getRange('A:Z'); //assign the range you want to copy
var range = ss.getRange('A:Z'); //assign the range you want to copy
var range1 = ss.getRange('A:Z'); //assign the range you want to copy
var range2 = ss2.getRange('A:Z'); //assign the range you want to copy
var range3 = ss3.getRange('A:Z'); //assign the range you want to copy
var range4 = ss4.getRange('A:Z'); //assign the range you want to copy
var range5 = ss5.getRange('A:Z'); //assign the range you want to copy
var range6 = ss6.getRange('A:Z'); //assign the range you want to copy
var range7 = ss7.getRange('A:Z'); //assign the range you want to copy
var range8 = ss8.getRange('A:Z'); //assign the range you want to copy
var range9 = ss9.getRange('A:Z'); //assign the range you want to copy
var range10 = ss10.getRange('A:Z'); //assign the range you want to copy
var range11 = ss11.getRange('A:Z'); //assign the range you want to copy
var rawData = range.getValues() // get value from spreadsheet 1
var data = [] // Filtered Data will be stored in this array
for (var i = 0; i< rawData.length ; i++){
if(rawData[i][1] == "Completed") // Check to see if column 6 says completed if not skip it
if(rawData[i][2] == "Bob")
{
data.push(rawData[i])
}
}
var tss = SpreadsheetApp.openById('1oFRs48JHCrH82msFkGrZ8iqDpyAdXww1e1EZYf6FRx8'); //replace with destination ID
var ts = tss.getSheetByName('Sheet1'); //destination Sheet tab name
ts.getRange(ts.getLastRow()+1, 1, data.length, data[0].length).setValues(data);
var lastRow = ts.getLastRow();
var numRows = range.length;
var numCols = range[0].length;
ts.getRange(lastRow+(lastRow > 0 ? 2 : 1), 1, numRows, numCols).setValues(SData1);
lastRow = ts.getLastRow();
numRows = range.length;
numCols = range[0].length;
ts.getRange(lastRow+2, 1, numRows, numCols).setValues(SData2); // instead of the row being 1 we use the lastRow variable to continue where it left off. I added +2 to put a space between each data section, this number can be changed to +1 to remove the space.
lastRow = ts.getLastRow();
numRows = range11.length;
numCols = range11[0].length;
ts.getRange(lastRow+2, 1, numRows, numCols).setValues(SData3);
}