我编写了一个脚本,它接受了一部分单元格内容(比如单元格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
}
}
答案 0 :(得分:0)
JavaScript数组索引从0开始。这是您在values[i][an]
Google电子表格索引是从1开始的。这是您在getCell(i, ts)
中使用的内容。
因此,您需要针对此差异进行调整:range.getCell(i+1, ts)