一个谷歌脚本,用于从电子表格中汇总两列并显示回电子表格

时间:2017-07-18 08:29:46

标签: google-apps-script google-sheets

我写了一个谷歌脚本,在谷歌电子表格中将两列最多50个数字相加。但是,我无法得到正确的结果。代码如下。

function DailyCreditCalculation() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getSheetByName("Sheet1");
  var values_old = sheet.getSheetValues(7,2,50,1);
  var values_new = sheet.getSheetValues(7,3,50,1);
  for(i = 0; i <= values_new.length-1; i++){
    values_old[i] = +values_old[i];
    values_new[i] = +values_new[i];
    values_old[i] = values_old[i] + values_new[i];
  }
  var cell = sheet.getRange(7,2,50,1);
  cell.setValues(values_old);
}

当我运行脚本时,它显示错误

  

“无法将数组转换为对象[] []”

如何修改脚本以便它可以成功运行?

1 个答案:

答案 0 :(得分:0)

您要检索的数据是两列向量,表示为一致性的数组数组,例如

[[1],
 [2],
 [3]]

这就是您必须进行+values_old[i]转化的原因。

循环的输出使得结果成为错误消息中指定的数组,因此如果您有两个相同的数组,结果将是例如[2,4,6]

setValues需要一个数组数组来写入数据(Object[][]) 由于您希望它是列向量,您可以说values_old[i] = [values_old[i] + values_new[i]];将产生结果

[[2],
 [4],
 [6]]

格式setValues可以使用。