0

大きなメインテーブルがあり、そこからレポート(作業用テーブル)のようなものを持つ10個の小さなテーブルを作成します。私は異なる条件で作業テーブルを塗りつぶし、そのスクリプトを書いた(それが唯一の方法だと思った)。私は1つのテーブルだけのためのスクリプトを実行する場合、それは動作しますが、私はそれを実行するとどこか(毎回別の場所に)予期せず停止し、今私はわずか4行を持っています。メインテーブルを作業に使用すると、おそらく300行になります。 その後、ここにあなたが試みることができる何かこれは、スプレッドシートhttps://docs.google.com/spreadsheets/d/1T6ujnZFdXYoC9n71RH8fm0EXKoyrUAYJGI-v5dwoDso/edit?usp=sharing1つのシートから他のシートへの行のコピーが予期せず停止する

のリンクであり、あなたのスクリプトが(すなわち、6分のスクリプトの上限を超えた)タイムアウトした場合、これはスクリプト

function doTables() { 
var sheetNameToMoveFrom = "Главен лист"; 
var ss = SpreadsheetApp.getActiveSpreadsheet();//we get the speadsheet we are using 
var sheetToMoveFrom = ss.getSheetByName(sheetNameToMoveFrom);// we store the object of the sheet to move from 
var theLastRow = sheetToMoveFrom.getLastRow(); //store the num of rows with content 
var valueToWatchYES = "да"; 
var valueToWatchNO = "не"; 

var sheetNameToMoveTheRowTo1 = "1.ряз за ламинат"; 
var sheetToMoveTo1 = ss.getSheetByName(sheetNameToMoveTheRowTo1);// we store the object of the sheet to move to 
var columnNumberToWatch1 = 39; // column A = 1, B = 2, etc. 
var theLastRow1 = sheetToMoveTo1.getLastRow(); 
sheetToMoveTo1.deleteRows(3,theLastRow1);// delete all rows from the table that we will copy into, so if there is a change on some row to apply 
var theFreeRow1 = 3; 

var sheetNameToMoveTheRowTo2 = "2.ряз за кант"; 
var sheetToMoveTo2 = ss.getSheetByName(sheetNameToMoveTheRowTo2);// we store the object of the sheet to move to 
var columnNumberToWatch21 = 15; // column A = 1, B = 2, etc. 
var columnNumberToWatch22 = 18; // column A = 1, B = 2, etc. 
var columnNumberToWatch23 = 22; // column A = 1, B = 2, etc. 
var theLastRow2 = sheetToMoveTo2.getLastRow(); 
sheetToMoveTo2.deleteRows(3,theLastRow2);// delete all rows from the table that we will copy into, so if there is a change on some row to apply 
var theFreeRow2 = 3; 

var sheetNameToMoveTheRowTo3 = "3.закалено за ламиниране"; 
var sheetToMoveTo3 = ss.getSheetByName(sheetNameToMoveTheRowTo3);// we store the object of the sheet to move to 
var columnNumberToWatch3 = 40; // column A = 1, B = 2, etc. 
var theLastRow3 = sheetToMoveTo3.getLastRow(); 
sheetToMoveTo3.deleteRows(3,theLastRow3);// delete all rows from the table that we will copy into, so if there is a change on some row to apply 
var theFreeRow3 = 3; 

var sheetNameToMoveTheRowTo4 = "4.готов продукт за опаковане"; 
var sheetToMoveTo4 = ss.getSheetByName(sheetNameToMoveTheRowTo4);// we store the object of the sheet to move to 
var columnNumberToWatch41 = 41; // column A = 1, B = 2, etc. 
var columnNumberToWatch42 = 42; // column A = 1, B = 2, etc. 
var theLastRow4 = sheetToMoveTo4.getLastRow(); 
sheetToMoveTo4.deleteRows(3,theLastRow4);// delete all rows from the table that we will copy into, so if there is a change on some row to apply 
var theFreeRow4 = 3; 

var sheetNameToMoveTheRowTo5 = "5.опис за ишлемета"; 
var sheetToMoveTo5 = ss.getSheetByName(sheetNameToMoveTheRowTo5);// we store the object of the sheet to move to 
var columnNumberToWatch5 = 32; // column A = 1, B = 2, etc. 
var theLastRow5 = sheetToMoveTo5.getLastRow(); 
sheetToMoveTo5.deleteRows(3,theLastRow5);// delete all rows from the table that we will copy into, so if there is a change on some row to apply 
var theFreeRow5 = 3; 

var sheetNameToMoveTheRowTo6 = "6.опис стъкла за кантиране"; 
var sheetToMoveTo6 = ss.getSheetByName(sheetNameToMoveTheRowTo6);// we store the object of the sheet to move to 
var columnNumberToWatch6 = 15; // column A = 1, B = 2, etc. 
var theLastRow6 = sheetToMoveTo6.getLastRow(); 
sheetToMoveTo6.deleteRows(3,theLastRow6);// delete all rows from the table that we will copy into, so if there is a change on some row to apply 
var theFreeRow6 = 3; 

var sheetNameToMoveTheRowTo7 = "7.опис стъкла за пробиване"; 
var sheetToMoveTo7 = ss.getSheetByName(sheetNameToMoveTheRowTo7);// we store the object of the sheet to move to 
var columnNumberToWatch7 = 18; // column A = 1, B = 2, etc. 
var theLastRow7 = sheetToMoveTo7.getLastRow(); 
sheetToMoveTo7.deleteRows(3,theLastRow7);// delete all rows from the table that we will copy into, so if there is a change on some row to apply 
var theFreeRow7 = 3; 

var sheetNameToMoveTheRowTo8 = "8.опис стъкла за цифрова обработка"; 
var sheetToMoveTo8 = ss.getSheetByName(sheetNameToMoveTheRowTo8);// we store the object of the sheet to move to 
var columnNumberToWatch8 = 22; // column A = 1, B = 2, etc. 
var theLastRow8 = sheetToMoveTo8.getLastRow(); 
sheetToMoveTo8.deleteRows(3,theLastRow8);// delete all rows from the table that we will copy into, so if there is a change on some row to apply 
var theFreeRow8 = 3; 

var sheetNameToMoveTheRowTo9 = "9.опис стъкла за облепване"; 
var sheetToMoveTo9 = ss.getSheetByName(sheetNameToMoveTheRowTo9);// we store the object of the sheet to move to 
var columnNumberToWatch91 = 27; // column A = 1, B = 2, etc. 
var columnNumberToWatch92 = 43; // column A = 1, B = 2, etc. 
var theLastRow9 = sheetToMoveTo9.getLastRow(); 
sheetToMoveTo9.deleteRows(3,theLastRow9);// delete all rows from the table that we will copy into, so if there is a change on some row to apply 
var theFreeRow9 = 3; 

var sheetNameToMoveTheRowTo10 = "10.опис стъкла за ламиниране"; 
var sheetToMoveTo10 = ss.getSheetByName(sheetNameToMoveTheRowTo10);// we store the object of the sheet to move to 
var columnNumberToWatch101 = 43; // column A = 1, B = 2, etc. 
var columnNumberToWatch102 = 5; // column A = 1, B = 2, etc. 
var theLastRow10 = sheetToMoveTo10.getLastRow(); 
sheetToMoveTo10.deleteRows(3,theLastRow10);// delete all rows from the table that we will copy into, so if there is a change on some row to apply 
var theFreeRow10 = 3; 

var rangeToCopy; 
var rangeToRecieveCopy; 

//loop through all the rows that the sheet we will copy from have and look for what matter for you 
for(var i=1; i<=theLastRow; i++) 
{ 
    //table 1 
    if(sheetToMoveFrom.getRange(i,columnNumberToWatch1).getValue() == valueToWatchYES) 
    { 
     rangeToCopy = sheetToMoveFrom.getRange("A"+i); 
     rangeToRecieveCopy = sheetToMoveTo1.getRange(theFreeRow1,1); 
     rangeToCopy.copyTo(rangeToRecieveCopy); 
     rangeToCopy = sheetToMoveFrom.getRange("B"+i); 
     rangeToRecieveCopy = sheetToMoveTo1.getRange(theFreeRow1,2); 
     rangeToCopy.copyTo(rangeToRecieveCopy); 
     rangeToCopy = sheetToMoveFrom.getRange("C"+i); 
     rangeToRecieveCopy = sheetToMoveTo1.getRange(theFreeRow1,3); 
     rangeToCopy.copyTo(rangeToRecieveCopy); 
     rangeToCopy = sheetToMoveFrom.getRange("D"+i); 
     rangeToRecieveCopy = sheetToMoveTo1.getRange(theFreeRow1,4); 
     rangeToCopy.copyTo(rangeToRecieveCopy); 
     rangeToCopy = sheetToMoveFrom.getRange("E"+i); 
     rangeToRecieveCopy = sheetToMoveTo1.getRange(theFreeRow1,5); 
     rangeToCopy.copyTo(rangeToRecieveCopy); 
     rangeToCopy = sheetToMoveFrom.getRange("H"+i); 
     rangeToRecieveCopy = sheetToMoveTo1.getRange(theFreeRow1,6); 
     rangeToCopy.copyTo(rangeToRecieveCopy); 
     rangeToCopy = sheetToMoveFrom.getRange("I"+i); 
     rangeToRecieveCopy = sheetToMoveTo1.getRange(theFreeRow1,7); 
     rangeToCopy.copyTo(rangeToRecieveCopy); 
     rangeToCopy = sheetToMoveFrom.getRange("J"+i); 
     rangeToRecieveCopy = sheetToMoveTo1.getRange(theFreeRow1,8); 
     rangeToCopy.copyTo(rangeToRecieveCopy); 
     rangeToCopy = sheetToMoveFrom.getRange("K"+i); 
     rangeToRecieveCopy = sheetToMoveTo1.getRange(theFreeRow1,9); 
     rangeToCopy.copyTo(rangeToRecieveCopy); 
     rangeToCopy = sheetToMoveFrom.getRange("M"+i); 
     rangeToRecieveCopy = sheetToMoveTo1.getRange(theFreeRow1,10); 
     rangeToCopy.copyTo(rangeToRecieveCopy); 
     rangeToCopy = sheetToMoveFrom.getRange("N"+i); 
     rangeToRecieveCopy = sheetToMoveTo1.getRange(theFreeRow1,11); 
     rangeToCopy.copyTo(rangeToRecieveCopy); 
     theFreeRow1++; 
    } 
    //table 2 
    if(sheetToMoveFrom.getRange(i,columnNumberToWatch21).getValue() == valueToWatchYES || sheetToMoveFrom.getRange(i,columnNumberToWatch22).getValue() == valueToWatchYES || sheetToMoveFrom.getRange(i,columnNumberToWatch23).getValue() == valueToWatchYES) 
    { 
     rangeToCopy = sheetToMoveFrom.getRange("A"+i); 
     rangeToRecieveCopy = sheetToMoveTo2.getRange(theFreeRow2,1); 
     rangeToCopy.copyTo(rangeToRecieveCopy); 
     rangeToCopy = sheetToMoveFrom.getRange("B"+i); 
     rangeToRecieveCopy = sheetToMoveTo2.getRange(theFreeRow2,2); 
     rangeToCopy.copyTo(rangeToRecieveCopy); 
     rangeToCopy = sheetToMoveFrom.getRange("C"+i); 
     rangeToRecieveCopy = sheetToMoveTo2.getRange(theFreeRow2,3); 
     rangeToCopy.copyTo(rangeToRecieveCopy); 
     rangeToCopy = sheetToMoveFrom.getRange("D"+i); 
     rangeToRecieveCopy = sheetToMoveTo2.getRange(theFreeRow2,4); 
     rangeToCopy.copyTo(rangeToRecieveCopy); 
     rangeToCopy = sheetToMoveFrom.getRange("E"+i); 
     rangeToRecieveCopy = sheetToMoveTo2.getRange(theFreeRow2,5); 
     rangeToCopy.copyTo(rangeToRecieveCopy); 
     rangeToCopy = sheetToMoveFrom.getRange("F"+i); 
     rangeToRecieveCopy = sheetToMoveTo2.getRange(theFreeRow2,6); 
     rangeToCopy.copyTo(rangeToRecieveCopy); 
     rangeToCopy = sheetToMoveFrom.getRange("G"+i); 
     rangeToRecieveCopy = sheetToMoveTo2.getRange(theFreeRow2,7); 
     rangeToCopy.copyTo(rangeToRecieveCopy); 
     rangeToCopy = sheetToMoveFrom.getRange("K"+i); 
     rangeToRecieveCopy = sheetToMoveTo2.getRange(theFreeRow2,8); 
     rangeToCopy.copyTo(rangeToRecieveCopy); 
     rangeToCopy = sheetToMoveFrom.getRange("M"+i); 
     rangeToRecieveCopy = sheetToMoveTo2.getRange(theFreeRow2,9); 
     rangeToCopy.copyTo(rangeToRecieveCopy); 
     rangeToCopy = sheetToMoveFrom.getRange("N"+i); 
     rangeToRecieveCopy = sheetToMoveTo2.getRange(theFreeRow2,10); 
     rangeToCopy.copyTo(rangeToRecieveCopy); 
     rangeToCopy = sheetToMoveFrom.getRange("P"+i); 
     rangeToRecieveCopy = sheetToMoveTo2.getRange(theFreeRow2,11); 
     rangeToCopy.copyTo(rangeToRecieveCopy); 
     rangeToCopy = sheetToMoveFrom.getRange("T"+i); 
     rangeToRecieveCopy = sheetToMoveTo2.getRange(theFreeRow2,12); 
     rangeToCopy.copyTo(rangeToRecieveCopy); 
     rangeToCopy = sheetToMoveFrom.getRange("Y"+i); 
     rangeToRecieveCopy = sheetToMoveTo2.getRange(theFreeRow2,13); 
     rangeToCopy.copyTo(rangeToRecieveCopy); 
     theFreeRow2++; 
    } 
    //table 3 
    if(sheetToMoveFrom.getRange(i,columnNumberToWatch3).getValue() == valueToWatchYES) 
    { 
     rangeToCopy = sheetToMoveFrom.getRange("A"+i); 
     rangeToRecieveCopy = sheetToMoveTo3.getRange(theFreeRow3,1); 
     rangeToCopy.copyTo(rangeToRecieveCopy); 
     rangeToCopy = sheetToMoveFrom.getRange("B"+i); 
     rangeToRecieveCopy = sheetToMoveTo3.getRange(theFreeRow3,2); 
     rangeToCopy.copyTo(rangeToRecieveCopy); 
     rangeToCopy = sheetToMoveFrom.getRange("C"+i); 
     rangeToRecieveCopy = sheetToMoveTo3.getRange(theFreeRow3,3); 
     rangeToCopy.copyTo(rangeToRecieveCopy); 
     rangeToCopy = sheetToMoveFrom.getRange("D"+i); 
     rangeToRecieveCopy = sheetToMoveTo3.getRange(theFreeRow3,4); 
     rangeToCopy.copyTo(rangeToRecieveCopy); 
     rangeToCopy = sheetToMoveFrom.getRange("E"+i); 
     rangeToRecieveCopy = sheetToMoveTo3.getRange(theFreeRow3,5); 
     rangeToCopy.copyTo(rangeToRecieveCopy); 
     rangeToCopy = sheetToMoveFrom.getRange("H"+i); 
     rangeToRecieveCopy = sheetToMoveTo3.getRange(theFreeRow3,6); 
     rangeToCopy.copyTo(rangeToRecieveCopy); 
     rangeToCopy = sheetToMoveFrom.getRange("I"+i); 
     rangeToRecieveCopy = sheetToMoveTo3.getRange(theFreeRow3,7); 
     rangeToCopy.copyTo(rangeToRecieveCopy); 
     rangeToCopy = sheetToMoveFrom.getRange("J"+i); 
     rangeToRecieveCopy = sheetToMoveTo3.getRange(theFreeRow3,8); 
     rangeToCopy.copyTo(rangeToRecieveCopy); 
     rangeToCopy = sheetToMoveFrom.getRange("K"+i); 
     rangeToRecieveCopy = sheetToMoveTo3.getRange(theFreeRow3,9); 
     rangeToCopy.copyTo(rangeToRecieveCopy); 
     rangeToCopy = sheetToMoveFrom.getRange("M"+i); 
     rangeToRecieveCopy = sheetToMoveTo3.getRange(theFreeRow3,10); 
     rangeToCopy.copyTo(rangeToRecieveCopy); 
     rangeToCopy = sheetToMoveFrom.getRange("N"+i); 
     rangeToRecieveCopy = sheetToMoveTo3.getRange(theFreeRow3,11); 
     rangeToCopy.copyTo(rangeToRecieveCopy); 
     theFreeRow3++; 
    } 
    //table 4 
    if(sheetToMoveFrom.getRange(i,columnNumberToWatch41).getValue() == valueToWatchYES || sheetToMoveFrom.getRange(i,columnNumberToWatch42).getValue() == valueToWatchYES) 
    { 
     rangeToCopy = sheetToMoveFrom.getRange("A"+i); 
     rangeToRecieveCopy = sheetToMoveTo4.getRange(theFreeRow4,1); 
     rangeToCopy.copyTo(rangeToRecieveCopy); 
     rangeToCopy = sheetToMoveFrom.getRange("B"+i); 
     rangeToRecieveCopy = sheetToMoveTo4.getRange(theFreeRow4,2); 
     rangeToCopy.copyTo(rangeToRecieveCopy); 
     rangeToCopy = sheetToMoveFrom.getRange("C"+i); 
     rangeToRecieveCopy = sheetToMoveTo4.getRange(theFreeRow4,3); 
     rangeToCopy.copyTo(rangeToRecieveCopy); 
     rangeToCopy = sheetToMoveFrom.getRange("D"+i); 
     rangeToRecieveCopy = sheetToMoveTo4.getRange(theFreeRow4,4); 
     rangeToCopy.copyTo(rangeToRecieveCopy); 
     rangeToCopy = sheetToMoveFrom.getRange("E"+i); 
     rangeToRecieveCopy = sheetToMoveTo4.getRange(theFreeRow4,5); 
     rangeToCopy.copyTo(rangeToRecieveCopy); 
     rangeToCopy = sheetToMoveFrom.getRange("H"+i); 
     rangeToRecieveCopy = sheetToMoveTo4.getRange(theFreeRow4,6); 
     rangeToCopy.copyTo(rangeToRecieveCopy); 
     rangeToCopy = sheetToMoveFrom.getRange("I"+i); 
     rangeToRecieveCopy = sheetToMoveTo4.getRange(theFreeRow4,7); 
     rangeToCopy.copyTo(rangeToRecieveCopy); 
     rangeToCopy = sheetToMoveFrom.getRange("J"+i); 
     rangeToRecieveCopy = sheetToMoveTo4.getRange(theFreeRow4,8); 
     rangeToCopy.copyTo(rangeToRecieveCopy); 
     rangeToCopy = sheetToMoveFrom.getRange("K"+i); 
     rangeToRecieveCopy = sheetToMoveTo4.getRange(theFreeRow4,9); 
     rangeToCopy.copyTo(rangeToRecieveCopy); 
     rangeToCopy = sheetToMoveFrom.getRange("M"+i); 
     rangeToRecieveCopy = sheetToMoveTo4.getRange(theFreeRow4,10); 
     rangeToCopy.copyTo(rangeToRecieveCopy); 
     rangeToCopy = sheetToMoveFrom.getRange("N"+i); 
     rangeToRecieveCopy = sheetToMoveTo4.getRange(theFreeRow4,11); 
     rangeToCopy.copyTo(rangeToRecieveCopy); 
     theFreeRow4++; 
    } 
    //table 5 
    if(sheetToMoveFrom.getRange(i,columnNumberToWatch5).getValue() == valueToWatchYES) 
    { 
     rangeToCopy = sheetToMoveFrom.getRange("A"+i); 
     rangeToRecieveCopy = sheetToMoveTo5.getRange(theFreeRow5,1); 
     rangeToCopy.copyTo(rangeToRecieveCopy); 
     rangeToCopy = sheetToMoveFrom.getRange("B"+i); 
     rangeToRecieveCopy = sheetToMoveTo5.getRange(theFreeRow5,2); 
     rangeToCopy.copyTo(rangeToRecieveCopy); 
     rangeToCopy = sheetToMoveFrom.getRange("C"+i); 
     rangeToRecieveCopy = sheetToMoveTo5.getRange(theFreeRow5,3); 
     rangeToCopy.copyTo(rangeToRecieveCopy); 
     rangeToCopy = sheetToMoveFrom.getRange("D"+i); 
     rangeToRecieveCopy = sheetToMoveTo5.getRange(theFreeRow5,4); 
     rangeToCopy.copyTo(rangeToRecieveCopy); 
     rangeToCopy = sheetToMoveFrom.getRange("E"+i); 
     rangeToRecieveCopy = sheetToMoveTo5.getRange(theFreeRow5,5); 
     rangeToCopy.copyTo(rangeToRecieveCopy); 
     rangeToCopy = sheetToMoveFrom.getRange("F"+i); 
     rangeToRecieveCopy = sheetToMoveTo5.getRange(theFreeRow5,6); 
     rangeToCopy.copyTo(rangeToRecieveCopy); 
     rangeToCopy = sheetToMoveFrom.getRange("H"+i); 
     rangeToRecieveCopy = sheetToMoveTo5.getRange(theFreeRow5,7); 
     rangeToCopy.copyTo(rangeToRecieveCopy); 
     rangeToCopy = sheetToMoveFrom.getRange("J"+i); 
     rangeToRecieveCopy = sheetToMoveTo5.getRange(theFreeRow5,8); 
     rangeToCopy.copyTo(rangeToRecieveCopy); 
     rangeToCopy = sheetToMoveFrom.getRange("K"+i); 
     rangeToRecieveCopy = sheetToMoveTo5.getRange(theFreeRow5,9); 
     rangeToCopy.copyTo(rangeToRecieveCopy); 
     rangeToCopy = sheetToMoveFrom.getRange("M"+i); 
     rangeToRecieveCopy = sheetToMoveTo5.getRange(theFreeRow5,10); 
     rangeToCopy.copyTo(rangeToRecieveCopy); 
     rangeToCopy = sheetToMoveFrom.getRange("AG"+i); 
     rangeToRecieveCopy = sheetToMoveTo5.getRange(theFreeRow5,11); 
     rangeToCopy.copyTo(rangeToRecieveCopy); 
     rangeToCopy = sheetToMoveFrom.getRange("AH"+i); 
     rangeToRecieveCopy = sheetToMoveTo5.getRange(theFreeRow5,12); 
     rangeToCopy.copyTo(rangeToRecieveCopy); 
     rangeToCopy = sheetToMoveFrom.getRange("AI"+i); 
     rangeToRecieveCopy = sheetToMoveTo5.getRange(theFreeRow5,13); 
     rangeToCopy.copyTo(rangeToRecieveCopy); 
     rangeToCopy = sheetToMoveFrom.getRange("AJ"+i); 
     rangeToRecieveCopy = sheetToMoveTo5.getRange(theFreeRow5,14); 
     rangeToCopy.copyTo(rangeToRecieveCopy); 
     rangeToCopy = sheetToMoveFrom.getRange("AK"+i); 
     rangeToRecieveCopy = sheetToMoveTo5.getRange(theFreeRow5,15); 
     rangeToCopy.copyTo(rangeToRecieveCopy); 
     rangeToCopy = sheetToMoveFrom.getRange("AL"+i); 
     rangeToRecieveCopy = sheetToMoveTo5.getRange(theFreeRow5,16); 
     rangeToCopy.copyTo(rangeToRecieveCopy); 
     theFreeRow5++; 
    } 
    //table 6 
    if(sheetToMoveFrom.getRange(i,columnNumberToWatch6).getValue() == valueToWatchYES) 
    { 
     rangeToCopy = sheetToMoveFrom.getRange("A"+i); 
     rangeToRecieveCopy = sheetToMoveTo6.getRange(theFreeRow6,1); 
     rangeToCopy.copyTo(rangeToRecieveCopy); 
     rangeToCopy = sheetToMoveFrom.getRange("B"+i); 
     rangeToRecieveCopy = sheetToMoveTo6.getRange(theFreeRow6,2); 
     rangeToCopy.copyTo(rangeToRecieveCopy); 
     rangeToCopy = sheetToMoveFrom.getRange("C"+i); 
     rangeToRecieveCopy = sheetToMoveTo6.getRange(theFreeRow6,3); 
     rangeToCopy.copyTo(rangeToRecieveCopy); 
     rangeToCopy = sheetToMoveFrom.getRange("D"+i); 
     rangeToRecieveCopy = sheetToMoveTo6.getRange(theFreeRow6,4); 
     rangeToCopy.copyTo(rangeToRecieveCopy); 
     rangeToCopy = sheetToMoveFrom.getRange("E"+i); 
     rangeToRecieveCopy = sheetToMoveTo6.getRange(theFreeRow6,5); 
     rangeToCopy.copyTo(rangeToRecieveCopy); 
     rangeToCopy = sheetToMoveFrom.getRange("F"+i); 
     rangeToRecieveCopy = sheetToMoveTo6.getRange(theFreeRow6,6); 
     rangeToCopy.copyTo(rangeToRecieveCopy); 
     rangeToCopy = sheetToMoveFrom.getRange("G"+i); 
     rangeToRecieveCopy = sheetToMoveTo6.getRange(theFreeRow6,7); 
     rangeToCopy.copyTo(rangeToRecieveCopy); 
     rangeToCopy = sheetToMoveFrom.getRange("M"+i); 
     rangeToRecieveCopy = sheetToMoveTo6.getRange(theFreeRow6,8); 
     rangeToCopy.copyTo(rangeToRecieveCopy); 
     rangeToCopy = sheetToMoveFrom.getRange("P"+i); 
     rangeToRecieveCopy = sheetToMoveTo6.getRange(theFreeRow6,9); 
     rangeToCopy.copyTo(rangeToRecieveCopy); 
     rangeToCopy = sheetToMoveFrom.getRange("Q"+i); 
     rangeToRecieveCopy = sheetToMoveTo6.getRange(theFreeRow6,10); 
     rangeToCopy.copyTo(rangeToRecieveCopy); 
     rangeToCopy = sheetToMoveFrom.getRange("R"+i); 
     rangeToRecieveCopy = sheetToMoveTo6.getRange(theFreeRow6,11); 
     rangeToCopy.copyTo(rangeToRecieveCopy); 
     rangeToCopy = sheetToMoveFrom.getRange("K"+i); 
     rangeToRecieveCopy = sheetToMoveTo6.getRange(theFreeRow6,12); 
     rangeToCopy.copyTo(rangeToRecieveCopy); 
     theFreeRow6++; 
    } 
    //table 7 
    if(sheetToMoveFrom.getRange(i,columnNumberToWatch7).getValue() == valueToWatchYES) 
    { 
     rangeToCopy = sheetToMoveFrom.getRange("A"+i); 
     rangeToRecieveCopy = sheetToMoveTo7.getRange(theFreeRow7,1); 
     rangeToCopy.copyTo(rangeToRecieveCopy); 
     rangeToCopy = sheetToMoveFrom.getRange("B"+i); 
     rangeToRecieveCopy = sheetToMoveTo7.getRange(theFreeRow7,2); 
     rangeToCopy.copyTo(rangeToRecieveCopy); 
     rangeToCopy = sheetToMoveFrom.getRange("C"+i); 
     rangeToRecieveCopy = sheetToMoveTo7.getRange(theFreeRow7,3); 
     rangeToCopy.copyTo(rangeToRecieveCopy); 
     rangeToCopy = sheetToMoveFrom.getRange("D"+i); 
     rangeToRecieveCopy = sheetToMoveTo7.getRange(theFreeRow7,4); 
     rangeToCopy.copyTo(rangeToRecieveCopy); 
     rangeToCopy = sheetToMoveFrom.getRange("E"+i); 
     rangeToRecieveCopy = sheetToMoveTo7.getRange(theFreeRow7,5); 
     rangeToCopy.copyTo(rangeToRecieveCopy); 
     rangeToCopy = sheetToMoveFrom.getRange("S"+i); 
     rangeToRecieveCopy = sheetToMoveTo7.getRange(theFreeRow7,6); 
     rangeToCopy.copyTo(rangeToRecieveCopy); 
     rangeToCopy = sheetToMoveFrom.getRange("T"+i); 
     rangeToRecieveCopy = sheetToMoveTo7.getRange(theFreeRow7,7); 
     rangeToCopy.copyTo(rangeToRecieveCopy); 
     rangeToCopy = sheetToMoveFrom.getRange("U"+i); 
     rangeToRecieveCopy = sheetToMoveTo7.getRange(theFreeRow7,8); 
     rangeToCopy.copyTo(rangeToRecieveCopy); 
     rangeToCopy = sheetToMoveFrom.getRange("I"+i); 
     rangeToRecieveCopy = sheetToMoveTo7.getRange(theFreeRow7,9); 
     rangeToCopy.copyTo(rangeToRecieveCopy); 
     rangeToCopy = sheetToMoveFrom.getRange("J"+i); 
     rangeToRecieveCopy = sheetToMoveTo7.getRange(theFreeRow7,10); 
     rangeToCopy.copyTo(rangeToRecieveCopy); 
     rangeToCopy = sheetToMoveFrom.getRange("K"+i); 
     rangeToRecieveCopy = sheetToMoveTo7.getRange(theFreeRow7,11); 
     rangeToCopy.copyTo(rangeToRecieveCopy); 
     theFreeRow7++; 
    } 
    //table 8 
    if(sheetToMoveFrom.getRange(i,columnNumberToWatch8).getValue() == valueToWatchYES) 
    { 
     rangeToCopy = sheetToMoveFrom.getRange("A"+i); 
     rangeToRecieveCopy = sheetToMoveTo8.getRange(theFreeRow8,1); 
     rangeToCopy.copyTo(rangeToRecieveCopy); 
     rangeToCopy = sheetToMoveFrom.getRange("B"+i); 
     rangeToRecieveCopy = sheetToMoveTo8.getRange(theFreeRow8,2); 
     rangeToCopy.copyTo(rangeToRecieveCopy); 
     rangeToCopy = sheetToMoveFrom.getRange("C"+i); 
     rangeToRecieveCopy = sheetToMoveTo8.getRange(theFreeRow8,3); 
     rangeToCopy.copyTo(rangeToRecieveCopy); 
     rangeToCopy = sheetToMoveFrom.getRange("D"+i); 
     rangeToRecieveCopy = sheetToMoveTo8.getRange(theFreeRow8,4); 
     rangeToCopy.copyTo(rangeToRecieveCopy); 
     rangeToCopy = sheetToMoveFrom.getRange("E"+i); 
     rangeToRecieveCopy = sheetToMoveTo8.getRange(theFreeRow8,5); 
     rangeToCopy.copyTo(rangeToRecieveCopy); 
     rangeToCopy = sheetToMoveFrom.getRange("I"+i); 
     rangeToRecieveCopy = sheetToMoveTo8.getRange(theFreeRow8,6); 
     rangeToCopy.copyTo(rangeToRecieveCopy); 
     rangeToCopy = sheetToMoveFrom.getRange("J"+i); 
     rangeToRecieveCopy = sheetToMoveTo8.getRange(theFreeRow8,7); 
     rangeToCopy.copyTo(rangeToRecieveCopy); 
     rangeToCopy = sheetToMoveFrom.getRange("K"+i); 
     rangeToRecieveCopy = sheetToMoveTo8.getRange(theFreeRow8,8); 
     rangeToCopy.copyTo(rangeToRecieveCopy); 
     rangeToCopy = sheetToMoveFrom.getRange("W"+i); 
     rangeToRecieveCopy = sheetToMoveTo8.getRange(theFreeRow8,9); 
     rangeToCopy.copyTo(rangeToRecieveCopy); 
     rangeToCopy = sheetToMoveFrom.getRange("X"+i); 
     rangeToRecieveCopy = sheetToMoveTo8.getRange(theFreeRow8,10); 
     rangeToCopy.copyTo(rangeToRecieveCopy); 
     rangeToCopy = sheetToMoveFrom.getRange("Y"+i); 
     rangeToRecieveCopy = sheetToMoveTo8.getRange(theFreeRow8,11); 
     rangeToCopy.copyTo(rangeToRecieveCopy); 
     rangeToCopy = sheetToMoveFrom.getRange("Z"+i); 
     rangeToRecieveCopy = sheetToMoveTo8.getRange(theFreeRow8,12); 
     rangeToCopy.copyTo(rangeToRecieveCopy); 
     theFreeRow8++; 
    } 
    } 
    } 
    function onEdit(e) { 
     if (e.source.getActiveSheet().getName() !== "други" || e.range.rowStart != 1 || e.range.columnStart != 9) return; 
     if(e.source.getSheetByName("други").getRange(1,9).getValue() == "да"){ 
     doTables(); 
     e.source.getSheetByName("други").getRange(1,9).setValue("готово"); 
     } 
    } 
+0

失敗したときに実行記録を確認しましたか? – Cooper

+0

問題はスクリプトのロジックではなく、毎回別の場所で失敗します – user3655388

+0

タイムアウトですか? – Cooper

答えて

0

です。私は最初の3つのセクションだけを修正しましたが、いくつかの繰り返しがあるように見えます。私は、getValuesとsetValuesを使用してシート(おそらく配列)をパラメータ化する場合、おそらくこの関数全体を50行未満のコードにすることができます。 。私が私の目の前にすべてのデータを持っていて、何が起きているのかを文脈で理解できるように、私は言語を理解していました。おそらく3時間以内にそれを行うことができます。他のプログラマーの何人かはおそらくそれよりも少なくすることができます。

for(var i=1; i<=theLastRow; i++) 
{ 
    //table 1 
    if(sheetToMoveFrom.getRange(i,columnNumberToWatch1).getValue() == valueToWatchYES) 
    { 
    rangeToCopy=sheetToMoveFrom.getRange(i,1,1,14); 
    var valuesToCopy=rangeToCopy.getValues(); 
    valuesToCopy.splice(5,2); 
    valuesToCopy.splice(9,1); 
    rangeToReceiveCopy=sheetToMoveTo1.getRange(theFreeRow1,1,1,11); 
    rangeToReceiveCopy.setValues(valuesToCopy); 
    theFreeRow1++; 
    } 
    //table 2 
    if(sheetToMoveFrom.getRange(i,columnNumberToWatch21).getValue() == valueToWatchYES || sheetToMoveFrom.getRange(i,columnNumberToWatch22).getValue() == valueToWatchYES || sheetToMoveFrom.getRange(i,columnNumberToWatch23).getValue() == valueToWatchYES) 
    { 
    rangeToCopy=sheetToMoveFrom.getRange(i,1,1,14); 
    var valuesToCopy=rangeToCopy.getValues(); 
    valuesToCopy.splice(7,2); 
    valuesToCopy.splice(9,1); 
    rangeToReceiveCopy=sheetToMoveTo2.getRange(theFreeRow2,1,1,13); 
    rangeToReceiveCopy.setValues(valuesToCopy); 
    theFreeRow2++; 
    } 
    //table 3 
    if(sheetToMoveFrom.getRange(i,columnNumberToWatch3).getValue() == valueToWatchYES) 
    { 
    rangeToCopy=sheetToMoveFrom.getRange(i,1,1,14); 
    var valuesToCopy=rangeToCopy.getValues(); 
    valuesToCopy.splice(5,2); 
    valuesToCopy.splice(9,1); 
    rangeToReceiveCopy=sheetToMoveTo3.getRange(theFreeRow3,1,1,11); 
    rangeToReceiveCopy.setValues(valuesToCopy); 
    theFreeRow3++; 
    } 
} 
関連する問題