Google 表格脚本:getRange().setValue(sampleArray) 仅将第一个单元格值复制到目标范围的单元格中

Google Sheets Script: getRange().setValue(sampleArray) copies only first cell value into destination range's cells

我正在学习这个基本教程,我的代码看起来很相似,但我不明白为什么它不能正常工作。 setValue 将 A1 中的值插入目标范围的每个单元格,而不是插入 Logger.log 确认存在的数组 (nameRange)。

https://www.youtube.com/watch?v=v1nvDkDY-3g

sheet1: basic sample data

           colA     colB   colC       
 row1     Name     Val1   Val2
 row2     jake      2        3
 row3     andrew    1        0
 row4     allie     4        0

脚本:

  var app = SpreadsheetApp;
  var activeSheet = app.getActiveSpreadsheet().getActiveSheet();
  var lastRow = activeSheet.getLastRow();

function fillDownFormula(){

    var nameRange = activeSheet.getRange(1,1,lastRow).getValues(); 
    Logger.log(guideRange);  
        //shows [[Name], [jake], [andrew], [allie]]

    activeSheet.getRange("D1:D5").setValue(guideRange);
    //writes 'Name' to each cell in this range

}

这个修改怎么样?

修改点:

  • guideRange 未在您的脚本中使用。
    • 请修改为nameRange
  • getRange("D1:D5").setValue(nameRange)setValue() 导入第一个元素,即 "Name" 到 "D1:D5"。
    • 请修改setValue()setValues()
    • 对于范围,将"D1:D5"修改为"D1:D4"。
      • 因为nameRange的行数是4,所以用了"D1:D4"。

修改后的脚本如下

发件人:

activeSheet.getRange("D1:D5").setValue(guideRange);

收件人:

activeSheet.getRange("D1:D4").setValues(nameRange);

如果我误解了你的问题,我很抱歉。