2015-11-19 48 views
0

我有一張工作表使用了一些相同的代碼......在過去的幾天嘗試工作在我當前的項目上,過去不再工作的東西工作,我得到各種不同的東西的錯誤。引用getLastRow()時獲取服務器錯誤消息+ 1

目前,我不能繼續前進,直到我找出這一個。

var ss = SpreadsheetApp.getActiveSpreadsheet(); 
var clientList = ss.getSheetByName("ClientList"); 
var tracker = ss.getSheetByName("Tracker"); 

var tr_activeRow = tracker.getActiveCell().getRow(); 
var tr_clientName = tracker.getRange(tr_activeRow,1); 
var tr_birthDate = tracker.getRange(tr_activeRow,5); 

function addNewName() { 
    if(tr_clientName.getValue() == "New" && tr_birthDate.getValue() != ""){ 
    tracker.getRange(tr_activeRow, 2, 1, 4).copyValuesToRange(clientList, 1, 4, clientList.getLastRow()+1, 1); 
    } 
} 

當試圖運行代碼我得到:

很抱歉,出現服務器錯誤。請稍等,然後重試。

我試過一些東西,知道它是getLastRow()+1這就是問題所在。我也嘗試getLastRow() & getLastRow()-1看代碼是否運行,它運行得很好。當我使用正整數時,似乎只是一個問題...

我在做什麼錯了?!?或者這是牀單/應用程序腳本的問題?

+0

您試圖複製超出電子表格範圍的內容。在那種情況下,我會期望得到一個錯誤。 – Mogsdad

回答

0

copyValuesToRange()的參數是:

copyValuesToRange(片材,柱,columnEnd,行,rowEnd)

你指定行端爲第1行。

.copyValuesToRange(clientList, 1, 4, clientList.getLastRow()+1, 1); 

rowEnd應該是一個大於或等於(對於一行)row參數的數字。

你只得到一排,

tracker.getRange(tr_activeRow, 2, 1, 4).copyVa . . . . 

所以rowrowEnd應該是相同的。

var theLastRow = clientList.getLastRow()+1; 
tracker.getRange(tr_activeRow, 2, 1, 4) 
    .copyValuesToRange(clientList, 1, 4, theLastRow, theLastRow); 
相關問題