Я ищу способ ускорить свой скрипт, ниже приведен фрагмент (на самом деле он намного длиннее, но по сути то же самое: getrange -> копировать на другой лист.
Проблема в том, что я сталкиваюсь с проблемами времени выполнения, я считаю, что мне нужно минимизировать вызовы функций и получить весь диапазон / значения за один удар, а затем скопировать в другой.
Единственное, что я скрипт-нуб и не могу проработать эту часть, любая помощь будет принята с благодарностью.
function testEV1() {
var sheet1 = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Test');
var sheet2 = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Datastore');
var lastRow = sheet2.getLastRow()+1;
if (sheet1.getRange('B3') != " ")
var confirm = Browser.msgBox('Confirmation required','Are you sure you want to submit this evaluation?', Browser.Buttons.OK_CANCEL);
if (confirm == 'ok') {
var wait = Browser.msgBox('Submission In Progress', 'Submission will take approximately 15 seconds, please wait for notification.', Browser.Buttons.OK);
/*** Evaluation Details ***/
sheet1.getRange('B2').copyTo(sheet2.getRange(lastRow, 1), {contentsOnly: true}); /*** Agent ***/
sheet1.getRange('B3').copyTo(sheet2.getRange(lastRow, 2), {contentsOnly: true}); /*** Date of Review ***/
sheet1.getRange('B4').copyTo(sheet2.getRange(lastRow, 3), {contentsOnly: true}); /*** Date of Call or Chat ***/
sheet1.getRange('D3').copyTo(sheet2.getRange(lastRow, 4), {contentsOnly: true}); /*** Reviewer ***/
sheet1.getRange('D4').copyTo(sheet2.getRange(lastRow, 5), {contentsOnly:true}); /*** Method of Enquiry ***/
sheet1.getRange('B5').copyTo(sheet2.getRange(lastRow, 6), {contentsOnly: true}); /*** Type(Issue vs Query) ***/
sheet1.getRange('B7').copyTo(sheet2.getRange(lastRow, 7), {contentsOnly: true}); /*** Chat & Call Link ***/
sheet1.getRange('D5').copyTo(sheet2.getRange(lastRow, 8), {contentsOnly: true}); /*** Category ***/
sheet1.getRange('B6').copyTo(sheet2.getRange(lastRow, 9), {contentsOnly: true}); /*** FOFC ***/
sheet1.getRange('D6').copyTo(sheet2.getRange(lastRow, 10), {contentsOnly: true}); /*** If FOFC NO ***/
var complete = Browser.msgBox('Submission Completed', 'Evaluation has been submitted, you may now clear the form or exit the application.', Browser.Buttons.OK);
}
};