我对Google Script很陌生,而且我一直在研究一系列困扰我的代码。我试图做的是让计算机读取电子表格中的一系列单元格,然后将它们全部打印出来,但在最后一行停止。但是,正如我尝试在for循环中使用函数.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 :(得分:1)
getLastRow
是一种类Sheet和Range的方法,这意味着每当您撰写something.getLastRow()
时,something
必须是一张或一张范围。 (正如Zig Mandel所说,有一个关于范围方法功能的issue;通常它用于表格。)
在您的代码中,activeSheetOne
是表格,应用getRange("E3:E")
您获得范围,然后应用getValues()
您得到一个数组的值。这意味着您使用JavaScript方法和属性而非Google Apps脚本方法使用的普通JavaScript array。
因此,请将<{1}}替换为
var lastRow = readingGender.getLastRow();
其中length
是数组的长度。
此外,包含var lastRow = readingGender.length;
和i
的代码是loopVar
和for
循环的混合。你不需要两者;一个while
循环可以。
for
建议:在使用Google Apps脚本之前,先了解JavaScript的基础知识,例如Codecademy。