Я создал код для копирования и вставки значений из самого последнего загруженного файла Gsheet в другой. Код должен копировать и вставлять только те значения, которые удовлетворяют условию ячейки.
Проблема в том, что этот код занимает много времени и не завершает sh, чтобы скопировать все значения перед выполнением ошибка времени.
Файл содержит около 300 000 ячеек, а окончательные суммы, которые нужно вставить во 2-й файл, имеют около 90 000 ячеек.
У кого-нибудь есть рекомендации по дальнейшим действиям?
Большое спасибо за вашу любезную поддержку.
function Master_Run_DB() {
Copy_EUDB();
}
function Copy_EUDB() {
var myLink = extractLink_EUDB();
sendData_EUDB(myLink);
}
function extractLink_EUDB() {
var newData = new Date().toLocaleString();
var drive = DriveApp.getFolderById("1ViOyzIkGOI6G6SMrtmPv4vjL-2-2duHC");
var file = drive.getFilesByType(MimeType.GOOGLE_SHEETS);
var link = file.next().getUrl();
var ss = SpreadsheetApp.getActiveSpreadsheet();
return link
}
function sendData_EUDB(link) {
var mainSS = SpreadsheetApp.openById("13CchyoqiWyvGTnYuG5TWA4cggBS-FsoDkW8XGesDkiY");
var lastRow = mainSS.getSheetByName("Database").getLastRow();
mainSS.getSheetByName("Database").getRange("A2" + ":R" + lastRow).clearContent();
var baseSS = SpreadsheetApp.openByUrl(link);
Logger.log(SpreadsheetApp.getActiveSpreadsheet().getUrl());
var lRow = baseSS.getSheetByName("Sheet1").getLastRow();
for (var i = 2; i <= lRow; i++) {
var cell = baseSS.getRange("G" + i);
var val = cell.getValue();
if (val == "EU") {
var sourceData = baseSS.getSheetByName("Sheet1").getRange("A" + i + ":R" + i).getValues();
var to = mainSS.getSheetByName("Database").getRange("A" + i + ":R" + i).setValues(sourceData);
}
}
};
Привет еще раз,
Теперь, когда новый код работает, я пытался добавить предложение IF AND к копии -вставить. Цель состоит в том, чтобы скопировать только те значения, которые удовлетворяют следующему условию:
Столбец 7 = "EU" Столбец 11 <> "CCCC"
Но я получаю синтаксическую ошибку. Любой совет?
Заранее благодарим за поддержку
function Master_Run_EU() {
var drive = DriveApp.getFolderById("1GiWUpQGch-SfNa6Yr4khHwfhfANEqyEA");
var file = drive.getFilesByType(MimeType.GOOGLE_SHEETS);
var link = file.next().getUrl();
var ss = SpreadsheetApp.openById("1zCYoaK4AA7N-gRH0Kf4NW5s5ffCzEY1mzlX3O0uW-gg");
const sh=ss.getSheetByName('Database');
sh.getRange(2,1,sh.getLastRow(),22).clearContent();
var dbss = SpreadsheetApp.openByUrl(link);
const dbsh=dbss.getSheetByName('Sheet1');
var oA=[];
var vs=dbsh.getRange(2,1,dbsh.getLastRow()-1,22).getValues();
vs.forEach(function(r,i){
if(r[7]=="EU" && r[11]<>"CCCC") {
oA.push(r);
}
});
sh.getRange(2,1,oA.length,oA[0].length).setValues(oA);
}