2016-03-14 29 views
1

我寫了一個腳本,它將一部分單元格內容(比如說單元格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

JavaScript數組索引是從0開始的。這是您使用的內容values[i][an]

Google Spreadsheet索引是基於1的。這是你在getCell(i, ts)中使用的。

因此,您需要調整此視差:range.getCell(i+1, ts)

相關問題