如何在谷歌脚本

时间:2016-04-14 14:20:19

标签: javascript google-apps-script google-sheets

我对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;
  }

}

1 个答案:

答案 0 :(得分:1)

getLastRow是一种类SheetRange的方法,这意味着每当您撰写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的代码是loopVarfor循环的混合。你不需要两者;一个while循环可以。

for

建议:在使用Google Apps脚本之前,先了解JavaScript的基础知识,例如Codecademy