我写了一个谷歌脚本,在谷歌电子表格中将两列最多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);
}
当我运行脚本时,它显示错误
“无法将数组转换为对象[] []”
如何修改脚本以便它可以成功运行?
答案 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
可以使用。