0
我只是沒有得到這個。我只是想將一個單元格的值複製到同一行的另一個單元格中。簡單的權利?那麼,它會用值而不是一個單元格填充每個單元格(向右)。我已經絞盡腦汁想到了這一點,我想我只是沒有理解一些東西。setValue()設置整行不是一個單元
/* This gets the entire sheet (range) doesn't it? */
var range = SpreadsheetApp.getActiveSheet().getDataRange();
var rowRange ;
var status ;
var notes ;
var i=981;
var theEnd=979;
for (; i > theEnd; i--) {
rowRange = range.offset(i, 0, 1); // Doesn't this specify one row (range) ?
status = rowRange.offset(0, statusColumnOffset).getValue(); // one cell, right?
notes = rowRange.offset(0, notesColumnOffset).getValue();
/* it gets the correct value for notes */
if (notes == "No Number") {
// copy notes cell to status cell
/* I've tried both this (first attempt): */
//rowRange.offset(0, statusColumnOffset).setValue("No Number");
/* and this (second attempt): */
statusCell = rowRange.offset(0, statusColumnOffset);
statusCell.setValue("No Number");
/* both give the same results */
}
現在我困惑,爲什麼我的第一次嘗試 「rowRange.offset(0,statusColumnOffset).setValue(」 無號碼 「);」做了它做的。它獲得了一個細胞的價值就好了。那麼爲什麼在這個世界上,相同的代碼(除了設置而不是獲取)會導致整行被設置爲每個單元中的值?我同樣困惑,爲什麼我的第二次嘗試給出了相同(錯誤)的結果。我不懂的是什麼?
謝謝
我在發佈前多次閱讀文檔。我明白其中的一些,但顯然不是全部。儘管如此,你的解釋爲這個問題減輕了一大堆問題。現在我明白爲什麼setValue()會執行它的功能,但突然getValue()讓我撓頭,爲什麼它實際上工作。根據你所說的,我會認爲getValue()也使用offset()會得到一行值而不是一個單元格。也許這實際上是它在做什麼,我根本沒有注意到它,因爲右邊的所有單元格都是空白的? –
或者也許我只是沒有正確地訪問它,看到它(最終會被)加載的所有值,我有一個內置的bug等着咬我? –
據我瞭解,如果您將getValue()應用於大於一個單元格的範圍,它將只會得到左上角的值。如果您的用例要求您獲取某個範圍內的所有值,則應該使用getValues()。 – AdamL