【问题标题】:How to use the getRange() method with an array value as one of the parameters如何使用以数组值作为参数之一的 getRange() 方法
【发布时间】:2016-05-22 04:35:42
【问题描述】:

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

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

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

    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() 方法不兼容的不同类型。谁能帮我确认这一点并帮我将其转换为整数?我将衷心感谢您的帮助。

【问题讨论】:

  • 要检查您的怀疑,请尝试添加console.log(typeof initialcoords[1]);。它说什么?
  • 感谢您的帮助 Noumenon,我已尝试添加此内容,但由于我使用的是 google-apps-script 的在线编辑器,它说控制台未定义,我使用了 console.log过去,但我不知道 AppScript 中有任何类似的命令
  • @DanielLara Google 应用脚本有 Logger.log() developers.google.com/apps-script/reference/base/logger

标签: google-apps-script google-sheets


【解决方案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

【讨论】:

    猜你喜欢
    • 2019-09-12
    • 1970-01-01
    • 1970-01-01
    • 2016-10-09
    • 1970-01-01
    • 1970-01-01
    • 2020-01-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多