如何使用getRange()方法将数组值作为参数之一

时间:2016-05-22 04:35:42

标签: google-apps-script google-sheets

我没有太多使用Javascript的经验,但我正在开发一个简单的代码来过滤一些与我正在帮助的教授相关的信息。我正在使用for搜索一定数量的数据的行号,然后我使用数组来存储包含这些单词的所有行。因为我正在使用Appscript,所以我只需要从我正在返回到我已经知道的最后一行的行中重新定位一定数量的数据。我的代码如下:

 if(cell === "Average")
{
   index++;
   initialcoords[index] = n; // n is the iteration variable in the for
}

我已经测试了数组的内容,它们很好,所以我正确存储行。问题是我使用不同的方法将数据粘贴到Google Spreadhsheets的不同表格中。我这样做的代码如下:

    function pasteInfo()
{
 var ss = SpreadsheetApp.getActiveSpreadsheet();
 var source = ss.getSheetByName("Sheet 1");
 var destination = ss.getSheetByName("Sheet 2");

  var range = source.getRange(initialcoords[1], 1, 8, 3);
  range.copyValuesToRange(destination, 4, 6, 4, 6);
}

我的问题是getRange(),因为它会输出如下错误:

can't find method getRange((class),number,number,number). 

我相信即使n被声明为整数,我返回的值也是与getRange()方法不兼容的不同类型。任何人都可以帮我确认一下,并帮我将其转换为整数?我将衷心感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

首先需要定义要从中获取数据的工作表,因为Spreadsheet可以有多个工作表。

您需要确保在使用参数之前定义了适当的默认值,否则解释器将开始猜测。

如果参数为空,则提供默认值:

function fillLine(row, column, length, bgcolor)
{
row = row || 0;
column = column || 0;
length = length || 1;
bgcolor = bgcolor || "red";
var sheet = SpreadsheetApp.getActiveSheet();
sheet.getRange(1+row, 1+column, 1, length).setBackground(bgcolor)
}

您也可以尝试社区提供的解决方案:Can't get Google Scripts working