0

好的,问题是如果没有关于宽度和高度的所有信息,就无法明确设置范围。如果我有 13 个单元格,为什么不只写 13 个单元格?所以,这里是脚本:

function onOpen() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var targetSheet = ss.getSheetByName("Analytics");
  var entries = [{
    name : "Read Data",
    functionName : "readRows"
  }];
  ss.addMenu("Script Center Menu", entries);
  var rows = targetSheet.getDataRange();
  var numRows = rows.getNumRows();
  var values = rows.getValues();
  targetSheet.getRange(1,1,values.length,values[0].length).setValues(values);
  values[1] = readRows();
  rows.setValues(values);
};

readRows()返回值的数组。它可以工作,appendRow()但我找不到一种方法来覆盖表中的第二行而不会出现所有复杂情况。我什么都试过了。这样它就一直抱怨不正确的范围高度。它甚至将整个数组写入行的每个单元格的其他一些方式。我就是不明白这东西是怎么工作的。这似乎完全不合逻辑。

我的意思是我正在寻找类似的东西setRow(2, readRows()),它将占用与数组中的值完全相同的单元格,并且将覆盖在此之前写入的任何内容,如果有的话。

4

1 回答 1

0

好的,找到答案了。现在看起来是这样的:

function onOpen() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var targetSheet = ss.getSheetByName("Analytics");
  var array = [];
  var data = [];
  var entries = [{
    name : "Read Data",
    functionName : "readRows"
  }];
  ss.addMenu("Script Center Menu", entries);
  array = readRows();
  data[0]=array;
  var range = targetSheet.getRange('A2:M2');
  range.setValues(data);
};

诀窍是将数组添加到另一个数组并实现二维数组 -即使您想修改单行, setValues()and函数也可以使用的唯一格式。getValues()似乎没有更简单的选择setArray()或类似的东西。

于 2013-05-19T20:19:54.417 回答