谷歌电子表格中的脚本:列和行索引的移位

时间:2016-03-14 13:33:13

标签: google-sheets

我编写了一个脚本,它接受了一部分单元格内容(比如单元格C4)并将其放在另一列(同一行)中。列由列的标题确定,for循环用于更改行。我把我的代码的主要结构放在下面。一切都在工作,除了,例如,如果我取单元格C4的内容(所以行i = 2)并且它必须放在B4中,实际上它将放在B3中。我必须在行和列索引中添加1,以便它在正确的单元格中。奇怪的是,代码在读取单元格时获得正确的列和行索引(单元格A1 = [0] [0])但是当它必须在单元格中写入时,情况就不再如此(如果单元格A1 = [1] [1])。你知道为什么吗?或者我的代码有问题吗?谢谢 PS:我确信我不会在代码中使用“i”作为另一个变量名。

function thrs() {
    var ss = SpreadsheetApp.getActiveSpreadsheet(),
        sheet = ss.getActiveSheet(),
        range = sheet.getDataRange(),
        values = range.getValues(),
        ...;
    for (var i=2;i<values.length;i++) { // change the row
        var val = values[i][an], // the index "an" is determined by the column title
            ...;
    range.getCell(i, ts).setValue(num); // the index "ts" is determined by the column title and "num" is what I want to write in the cell
     }
}

1 个答案:

答案 0 :(得分:0)

JavaScript数组索引从0开始。这是您在values[i][an]

中使用的内容

Google电子表格索引是从1开始的。这是您在getCell(i, ts)中使用的内容。

因此,您需要针对此差异进行调整:range.getCell(i+1, ts)