设定值范围在不同的电子表格(Set values to ranges in a different

2019-10-28 08:39发布

任何人都可以提供有关如何更新或在不同的表格设置值范围的建议。 我知道这个IMPORTRANGE功能将使值到活动工作表,但我想“推”数据的单个行从活动工作表排在一个叫FinalData的表,这是在不同的电子表格的底部。

我想“推”的数据由其他代码填充,从而导致数据的在一个称为TempData的片材的单个行。 !在范围内的TempData A2的数据存在:U2。

我的目标是从TempData的A2追加数据:!(但相同的“谷歌驱动器”),U2在一个叫“DataFinal”表,这是一个完全独立的谷歌电子表格底部的新行

这是我试过到目前为止:

// Row to FinalData
   var ss = SpreadsheetApp.getActiveSpreadsheet ();

   var startSheet = ss.getSheetByName("TempData");

   var sourceRange = ss.getRange ("TempData!A2:U");

   var target = SpreadsheetApp.openById("1bWKS_Z1JwLSCO5WSq1iNP1LLQpVXnspA4WkzdyxYDNY");

   var targetSheet = target.getSheetByName("DataFinal");

   var lastRow = targetSheet.getLastRow();

   targetSheet.insertRowAfter(lastRow); 

   sourceRange.copyTo(targetSheet.getRange(lastRow + 1,1), {contentsOnly: true});

当我运行它,我得到一个错误,指出“目标范围和源范围必须在同一个电子表格。”。 必须有一个办法做到this--任何建议将受到欢迎。

Answer 1:

copyTo()可以被用于相同的电子表格。

从你的脚本,我认为你可以使用实现它getValues()setValues()因为你用contentsOnly: true 。 因此,如何此修改?

来源:

sourceRange.copyTo(targetSheet.getRange(lastRow + 1,1), {contentsOnly: true})

至 :

var sourceValues = sourceRange.getValues();
targetSheet.getRange(lastRow + 1, 1, sourceValues.length, sourceValues[0].length).setValues(sourceValues);

注意 :

  • 如果你想使用copyTo() 这个线程可能是您的情况非常有用。

参考文献:

  • 复制到()
  • 的GetValues()
  • setValues方法()

如果这不是你想要的,请告诉我。 我想修改它。



文章来源: Set values to ranges in a different spreadsheet