2016-04-14 209 views
0

我對Google Script非常陌生,我一直在研究一系列困擾我的代碼。我想要做的是讓電腦通過電子表格中的一系列單元格進行讀取,然後全部打印出來,但是在最後一行停下來。但是,正如我已經嘗試在for循環中使用函數.getLastRow()或者只是創建一個變量,它不起作用。 (有一些部件,其中的代碼是多餘的,因此可以忽略該不相關的問題。)如何在谷歌腳本中使用函數.getLastRow()

function myFunction() 
{ 

    var spreadSheet = SpreadsheetApp.openById("1F4zEJXKN3iobK8b89Ub94dd77Tdk70H0X8aFCSCmvRs"); 
    var activeSheetOne = spreadSheet.getSheetByName("New Family Responses"); 
    var activeSheetTwo = spreadSheet.getSheetByName("Existing Family Responses"); 

    var readingGender = activeSheetOne.getRange("E3:E").getValues(); 
    var lastRow = readingGender.getLastRow(); 
    var loopVar = 0; 

    for (var i=0; i < lastRow; i++) { 
    Logger.log(readingGender[loopVar][0]); 
    loopVar = loopVar + 1; 
    } 

} 

回答

0

getLastRow是類SheetRange的方法,該簡單地意味着每當你寫something.getLastRow(),即something必須是表單或範圍。 (如齊格曼德爾指出,沒有關於該範圍方法的功能的issue;通常它用於薄片)

在你的代碼,activeSheetOne,應用getRange("E3:E")你得到範圍,然後應用getValues()您只能得到一個數組的值。這意味着您使用JavaScript方法和屬性工作的普通JavaScript array,而不是Google Apps腳本方法。

因此,通過

var lastRow = readingGender.length; 

其中length是一個數組的長度更換線var lastRow = readingGender.getLastRow();

另外,iloopVar的代碼是forwhile循環的混合。你不需要;一個for循環會做。

for (var i=0; i < lastRow; i++) { 
    Logger.log(readingGender[i][0]); 
} 

建議:學習JavaScript的基礎知識,例如,與Codecademy,與谷歌Apps腳本工作之前。

+0

請注意,range.getLastRow()當前與sheet.getLastRow()相同,請參閱https://code.google.com/p/google-apps-script-issues/issues/detail?id=1349 –

+0

好點子;我從來沒有使用過它的範圍,並且正在脫離問題中的代碼。編輯。 – 2016-04-14 23:33:49