【问题标题】:Google Sheets Script - Copying data range from one sheet to another - whole range not copying谷歌表格脚本 - 将数据范围从一张表复制到另一张表 - 整个范围不复制
【发布时间】:2023-03-12 07:41:01
【问题描述】:

在这方面和学习 atm 方面有点新手。我正在使用以下脚本在同一个 Google 电子表格中将数据从一张表复制到另一张表:

function recordHistory() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getSheetByName("Cover");
  var source = sheet.getRange("a1:c21");
  var values = source.getValues();
  var sheet2 = ss.getSheetByName("January 2020")
  values [0] [0] = new Date();
  sheet2.appendRow(values [0])
}

这可以很好地复制单行,但不能复制列出的整个范围 (a1:c21)。现在我想问题出在第 8 行,但我不确定。

这是我用来尝试的电子表格的链接:

https://docs.google.com/spreadsheets/d/15pEbNy-PmrGeAmpASRUK2iXIyJPfg43Mm2r6bbiTBuM/edit#gid=1296663899

【问题讨论】:

  • 您的问题在于您的.appendRow(),您只是使用values[0] 添加了一行 行数据。
  • 是这样想的,那么有什么替代方案呢?如果您添加值 [1],则它会复制第 2 行,仅此而已。你在那里添加什么来复制整个范围?

标签: google-apps-script google-sheets


【解决方案1】:
function recordHistory() {
  var ss = SpreadsheetApp.getActive();
  var sheet = ss.getSheetByName("Cover");
  var source = sheet.getRange("a1:c21");
  var values = source.getValues();
  var sheet2 = ss.getSheetByName("January 2020")
  values [0][0] = new Date();
  sheet2.getRange(sheet2.getLastRow()+1,1,values.length,values[0].length).setValues(values);
}

【讨论】:

  • 嘿库珀,非常感谢。发现。所以我理解前进; '.getRange(sheet2.getLastRow()+1,1' 在第二张纸上找到可用空间,然后 '1,values.length,values[0].length)' 告诉它数据的完整范围是多少和下一个可用空间? [0] 表示从第一行开始?最后 .setValues(values) 实际输入数据?想确保我理解它是如何工作的,而不是简单地复制答案。正如我所说,我是这方面的新手,所以这是一个全新的理解领域。 (YouTube、Google 和 Stackoverflow 学习)
猜你喜欢
  • 1970-01-01
  • 2019-01-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-10-08
  • 2016-02-07
  • 1970-01-01
相关资源
最近更新 更多