Google 表格脚本 - 不同单元格中的循环值

Google Sheets Script - Loop values in different cells

我来自 VBA 和 Python,所以仍在尝试掌握 Google 表格中的 javascript。我正在尝试做一些非常简单的事情。

  1. 在 D 列中查找最后一行 - 成功
  2. 在 D 列中从第 2 行到最后一行命名数组 - 成功
  3. 复制第 i 行单元格的值并粘贴到 E 列 - 不成功

我需要它查看 data[0][0] 并复制 E 列中的信息,然后查看 data[1][0] 并复制 E 列中的信息,等等,直到 lastRow.一切正常,直到最后一行,我收到一条错误消息 "The coordinates or dimensions of the range are invalid."

这是我的代码:(仅供参考:lastrow() 是一个在指定列中查找最后一行 # 的函数)

function GatherStoreInfo() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var ReportSheet = ss.getSheetByName('Report');

  for (var i = 0; i < lastRow('A') + 1; i = i+1) {
    var data = ReportSheet.getRange(2, 4, lastRow('D'), 1).getValues();
    ReportSheet.getRange(i, 2).setValue(data[i][0]); // <- This doesn't work
  }
}

好吧,经过更多的折腾,我明白了。我想我会 post 答案以防万一有人无意中发现了这个问题。

基本上是因为我从 0 开始 i 然后在范围内我告诉它从不存在的第 0 行开始,所以我不得不在范围内添加 i + 1 并且它起作用了。这是最终代码:

function GatherStoreInfo() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var ReportSheet = ss.getSheetByName('Report');

  for (var i = 0; i < lastRow('A'); i = i+1) {
    var data = ReportSheet.getRange(1, 4, lastRow('D'), 1).getValues();
    SpreadsheetApp.getActiveSheet().getRange(i + 1, 5).setValue(data[i]);
  }
}