0

我想将一个脚本分配给+按钮,这样当我按下按钮时,单元格M4将添加单元格R4的值,来自R5的M5值等等,直到列的末尾。将一个单元格的值添加到另一个单元格中的某个列中的所有单元格Google Appscript

Screenshot

这是我的脚本

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
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]

+0

感谢您的帮助。我已经更新了我的问题中的脚本。尽管如此仍然显示空单元格 –

+0

它就像一个魅力!今天我学到了一些新东西。谢谢:)将更新脚本。 –

相关问题