我想为+按钮分配一个脚本,这样当我按下按钮时,单元格M4将添加来自单元格R4,M5的值,其值为R5,依此类推,直到列的末尾。
这是我的剧本
function add() {
s=SpreadsheetApp.getActiveSpreadsheet().getActiveSheet()
var rangeVal=s.getRange("M:M")
var rangeVal2=s.getRange("R:R")
var Val=rangeVal.getValues()
var Val2=rangeVal2.getValues()
for (var i=4; i<Val.length; i++) {
if (Val2[i][0] > 0 ) {
Val[i][0] = Val[i][0] + Val2[i][0]; } }
rangeVal.setValues(Val);
}
答案 0 :(得分:0)
function add() {
s=SpreadsheetApp.getActiveSpreadsheet().getActiveSheet()
var rangeVal=s.getRange("M:M")
var rangeVal2=s.getRange("R:R")
var Val=rangeVal.getValue() // <= you went wrong here
var Val2=rangeVal2.getValue() // <= & here
for (var i=4; i<Val.length; i++) {
if (Val2[i][0] > 0 ) {
Val[i][0] = Val + Val2; // <= & here
}
}
rangeVal.setValue(Val); // <= & here
}
只有少数拼写错误正在停止这种工作(有些我在初次检查时错过了!),否则逻辑是正确的。您正在调用range.getValue()
,它将范围的左上角值作为字符串返回,但您希望使用range.getValues()
(在函数名末尾带有's')来检索所有作为2D数组的范围中的值。您还需要在末尾使用range.setValues()
将值写回电子表格。最后,您已经非常仔细地介绍了数据数组,但每次循环时,您都会连接Val
&amp; Val2
。您需要将特定值一起添加:Val[i][0] += Val2[i][0]
。