1

下面是我的代码,在代码的最后一行我收到“无法转换错误”。澄清这一行:sheet.getRange引发错误。

这就是错误的全部内容;仅此而已,只是“无法转换”。另外,这是完整的代码,所以没有别的了。

 function days(){   
      var table = new Array(7); 

      for ( var i = 0; i < 7 ; i ++){
        table[i] = i+2;  
        }

       var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Want");
           sheet.getRange("B2:B9").setValues(table); 

        }
4

3 回答 3

3

SetValues()将 2 维数组作为参数,TABLE是 1 维数组...这不能按原样工作...虽然很容易更改,但将 table 设置为 7 个元素的 2D 数组。

像这样 : table[i] = [i+2];

顺便说一句,范围('B2:B9')是 8 个单元格高,你只给出 7 个值......那里会有问题!

于 2012-07-12T20:17:54.373 回答
3

我对 Google Apps 脚本一无所知,但我设法在 Google 上找到了这个

看来您的表需要是一个二维数组。

也许这可以帮助?

(代码来自上面的链接)

var myTable = [[1, 2, 3, 4],[5, 6, 7, 8]];
var sheet = SpreadsheetApp.getActiveSheet();
sheet.getRange(1,1,2,4).setValues(myTable);
于 2012-07-12T20:18:59.880 回答
1

我想出了这个问题的问题,所以我会回答这个问题,以便其他人可以受益。这里的问题是必须为 Range 对象的 .setValues 方法提供一个二维数组 [][]。所以我在另一个数组中创建了一个 0 维数组,这样我现在就有了一个二维数组。

var array = new Array(7);

 for (var i = 0; i < 7; i++) {
    array[i] = new Array(0);
  }
于 2012-07-12T20:19:28.173 回答