 <p>Well, whenever you make calls towards google libraries, costs you time.</p> <p>Which means that if you manage to somehow get these 2 lines out of the loop, you will most likely succeed. </p> <pre><code>var toCopy = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("FINAL").getRange(3, 3, data1Length - 2, data1LengthHorizontal - 2); //HardCoded Starting Point toCopy.setValues(results); </code></pre> <p>Inside the loop try to work only with arrays, remember indexes, line rows, etc. and then call <code>getRange</code> and <code>setValues</code> <strong>outside</strong> the loop, according to the data you saved inside the loop.</p>