将一个单元格的值添加到另一个单元格中的某个列中的所有单元格Google Appscript
问题描述:
我想将一个脚本分配给+按钮,这样当我按下按钮时,单元格M4将添加单元格R4的值,来自R5的M5值等等,直到列的末尾。将一个单元格的值添加到另一个单元格中的某个列中的所有单元格Google Appscript
这是我的脚本
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);
}
答
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
& Val2
。您需要将特定值加在一起:Val[i][0] += Val2[i][0]
。
感谢您的帮助。我已经更新了我的问题中的脚本。尽管如此仍然显示空单元格 –
它就像一个魅力!今天我学到了一些新东西。谢谢:)将更新脚本。 –