2015-10-26 3 views
0

Я создаю функцию архивирования для шаблона планированияApps Script getLastRow ошибка (

Я получил его на работу с помощью следующего кода:.

// https://developers.google.com/apps-script/reference/spreadsheet/range 
function copySchedule2() { 
    var ss = SpreadsheetApp.getActiveSpreadsheet(); 
    var source = ss.getSheets()[3]; 
    var destination = ss.getSheets()[4]; 

    var range = source.getRange("A1:X64"); 

    range.copyFormatToRange(destination, 1, 26, 1, 64); 
    range.copyValuesToRange(destination, 1, 26, 1, 64); 
} 

Однако, так как это на постоянной основе . архивация, я пытаюсь добавить каждый график недели в нижней части предыдущего архива я пытался этот код:

function copySchedule() { 
    var ss = SpreadsheetApp.getActiveSpreadsheet(); 
    var source = ss.getSheets()[3]; 
    var destination = ss.getSheets()[4]; 
    var range = source.getRange("A1:X64"); 

    source.getRange("A:X").copyTo(destination.getRange(destination.getLastRow()+1)); 

} 

Но я получаю сообщение об ошибке:

[15-10-26 17:24:28:093 EDT] Starting execution 
[15-10-26 17:24:28:099 EDT] SpreadsheetApp.getActiveSpreadsheet() [0 seconds] 
[15-10-26 17:24:28:191 EDT] Spreadsheet.getSheets() [0.092 seconds] 
[15-10-26 17:24:28:193 EDT] Spreadsheet.getSheets() [0.001 seconds] 
[15-10-26 17:24:28:243 EDT] Sheet.getRange([A1:X64]) [0.049 seconds] 
[15-10-26 17:24:28:302 EDT] Execution failed: Cannot convert function FindRows() { destinationRange = SpreadhseetApp.getActiveSpreadsheet().getSheets()[4].getLastRow(); return destinationRange; } 1 to (class). (line 36, file "Copy v0.5") [0.146 seconds total runtime] 

Я новичок в JS, поэтому, возможно, кто-то может указать мне в правильном направлении. Что мне не хватает?

ответ

0

copyTo() требует ссылки на ячейку, чтобы знать, где она должна вставлять данные. Вы просто указываете номер строки, поскольку getLastRow() возвращает число.

Try добавление а, 1, чтобы сказать ему, чтобы начать склеивание в колонке А:

source.getRange("A:X").copyTo(destination.getRange(destination.getLastRow()+1, 1)); 
+0

Спасибо, сэр. Быстрый вопрос - есть ли какие-то лучшие ресурсы, чем документация Google? Я нахожу их примеры немного недостающими. – Bardworx

+1

В то время как нигде рядом с изнурительными, я считаю, что ссылка очень хорошая. Я чувствую, что, если вы понимаете JS и понимаете концепцию электронных таблиц, листов, диапазонов и их свойств, все встает на свои места. К сожалению, ресурсов не так много, две книги и [пожертвование на основе] (https://leanpub.com/googlespreadsheetprogramming), которые мне лично очень не хватает, и немного больше, чем обогащенная копия из основных учебных пособий Google. –

Смежные вопросы